Здравствуйте! Изучаю Laravel. Чему-то уже научился и взялся за задачу посложнее. И упёрся... Прошу помощи. Суть вопроса: Система тестирования сотрудников. Есть Тест, у него есть Темы, у Темы есть Вопросы, у Вопроса есть Ответы. Связи в моделях построены и работает всё правильно. Если я хочу удалить Вопрос, то я поступаю так: Код (Text): $question->answers()->delete(); // удаляю ответы к вопросу $question->delete(); // удаляю сам вопрос Всё удаляется. А как поступать, когда я хочу удалить Тему? Мне надо удалить Вопросы (которые связанны с Темой) и Ответы (которые связанны с вопросами). Я, конечно, могу по PHPшному - получить id вопросов, по ним получить id ответов к каждому из них и по очереди это всё удалить. Но мне кажется, что это будет как-то не по ларавельски. Как сделать это правильно?
Сделать связь на уровне БД с onDelete("cascade") (см. доку по миграциям) Удалить массово сложным запросом через Query Builder (через подзапрос получить айди всех вопросов, связанных с темой, этот подзапрос передать в удаление ответов) --- Добавлено --- https://www.w3resource.com/sql/delete-statement/delete-with-subqueries.php
Если нужно удалять не только записи в бд, но и какие то дополнительные вещи - например файлы по ссылкам и прочее, в модели можно в booting рассматривать нужные события, например deleting