Я использую Plymorphic отношения и ON DELETE CASCADE
вариант mysql, и я боюсь, как мои данные будут оставаться постоянными с течением времени. Поясню:Laravel 4.0 каскадное удаление и полиморфные отношения
Если у меня есть модель номер, который содержит мебели нескольких типов (morphMany из Table
, Chair
, Couch
...), и я решил удалить его, его родственные мебель не будут удалены.
Чтобы решить эту Issure я обработал исключение соответствующих мебели в удаления события из Room
модели, но это событие не обязательно уволят все время.
Предположим, что у меня есть другая модель под названием House
, содержащая несколько комнат (hasMany). Если я решит удалить его, связанные с ним модели будут удалены mysql с опцией ON DELETE CASCADE
. Затем я останусь с данными в своих таблицах tables
, chairs
, couchs
, которые больше не актуальны и больше не связаны ни с одной строкой таблицы rooms
.
Итак, что является лучшим способом сохранить базу данных в соответствии с ON DELETE CASCADE
и полиморфными отношениями Eloquent?
Так что, если я понимаю, что вы говорите, способность помещать каскадное удаление в миграции не должна использоваться на самом деле никогда, так как все удаления должны обрабатываться только Eloquent. Я прав ? – alxscms
Иногда каскадирование работает нормально, но если вам нужна более сложная логика при удалении (как и в вашем случае), используйте модельные события. – Andreas