Laravel 4.0级联删除和多态关系

时间:2014-01-23 00:25:57

标签: mysql laravel laravel-4 cascade

我正在使用Eloquent plymorphic关系和mysql的ON DELETE CASCADE选项,并且害怕我的数据将如何保持一致。让我解释一下:

如果我的模型房间包含多种类型的家具(morphMany of TableChairCouch ...),我决定删除它,他的相关家具不会被删除。

为了解决这个问题,我在Room模型的删除事件中处理了相关家具的删除,但此事件不一定会一直被解雇

假设我有另一个名为House的模型,其中包含多个房间(hasMany)。如果我决定删除它,其相关模型将被mysql删除并使用ON DELETE CASCADE选项。然后,我将继续使用不再相关的表tableschairscouchs中的数据,并且不再与rooms表的任何行相关。

那么保持数据库与ON DELETE CASCADE和Eloquent的多态关系一致的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

如果你正在使用原始数据库(级联)方法,那就绕过了Eloquent,就无法做你想做的事了。

为House设置一个已删除的事件,该事件遍历其所有房间并删除它们,这再次触发房间的已删除事件。