Привет мастера.
Подскажите пожалуйста, как в laravel удалять связанные записи, при том, что данные в бд связаны.
Вот у примеру, есть несколько таблиц: категории, работы, скрины работ
Как сделать, чтобы, если удаляем категорию, то, чтобы удалялись все записи: работы, скрины.
При попытке удалить просто каталог, получаю ошибку: "Cannot delete or update a parent row: a foreign key constraint fails"
Как сделать, чтобы, если удаляем категорию, то, чтобы удалялись все записи: работы, скрины.
Насколько я понимаю, в данном случае, у нас "работы, скрины" привязаны к категории? Права-слово, не мучайте лару, для этого более чем достаточно возможностей самой БД. Подробнее тут (или картинка из HeidiSQL). При создании внешнего ключа, мы указываем, что при удалении записи-родителя, на которую ссылается дочерняя (зависимая) запись в этой таблице - она будет так же удалена, в след за "родительской", так же как и все остальные записи которые ссылаются на удаляемую "родительскую" запись.
P.S. Терминологией не богат, не обессудьте.
P.P.S. То есть на Вашем примере, мы делаем внешние ключи в таблицах "работы, скрины" и привязываем их к категории по какому-то полю. После удаления категории, все связанные с ней записи так же могут быть удалены (автоматически, на уровне самой БД).
Решение было простым: в связях с таблицами, при обновлении и удалении, опцию поменял на "cascade"
Ответ:
Насколько я понимаю, в данном случае, у нас "работы, скрины" привязаны к категории? Права-слово, не мучайте лару, для этого более чем достаточно возможностей самой БД. Подробнее тут (или картинка из HeidiSQL). При создании внешнего ключа, мы указываем, что при удалении записи-родителя, на которую ссылается дочерняя (зависимая) запись в этой таблице - она будет так же удалена, в след за "родительской", так же как и все остальные записи которые ссылаются на удаляемую "родительскую" запись.
Спасибо Автор.Столкнулся с такой же проблемой и решил.Использовал для работы с БД PHPmyadmin.
Вот скрин где нужно было поменять чтобы удаление происходило корректно.