и есть таблица Posts, каждый пост в таблице Posts связан с определенным пользователем. Я связал их на уровне БД, указав в миграции таблицы Posts привязку $table->foreignId('user_id')->constrained()->cascadeOnDelete()->cascadeOnUpdate();. И теперь, удаляя пользователя (применяю мягкое удаление - soft delete), как сделать так, чтобы посты удаленного пользователя так-же удалялись (мягко)? Или это нужно будет сделать вручную? Спасибо заранее!
Есть пакет для cascade soft delete. Ну или самому делать update deleted_at where user_id
Этот use Illuminate\Database\Eloquent\SoftDeletes;? Если он, я его использую
Это для родительской модели. Он не обновит каскадно дочерние
А как его можно найти, или где можно почитать насчет этого?
Ну так и загуглить. Laravel cascade soft delete
Спасибо, приятель!
Занесёшь
Кстати, а если удалять связанные модели через прослушивания событий? К примеру на удаление User, удалять вся связанные с ним поля в других таблицах? Это адекватный вариант?
Тут главное не упустить из виду связанную таблицу(-ы) 😁
Ну типа, при удалении записи из таблицы, у тебя есть два варианта сохранить консистентность связанных данных: - на уровне бд, каскадные delete или set null - на уровне кода, но тогда приложение должно учитывать самостоятельно эти движения и само следить за консистентностью
Обсуждают сегодня