我正在使用Eloquent plymorphic关系和mysql的ON DELETE CASCADE
选项,并且害怕我的数据将如何保持一致。让我解释一下:
如果我的模型房间包含多种类型的家具(morphMany of Table
,Chair
,Couch
...),我决定删除它,他的相关家具不会被删除。
为了解决这个问题,我在Room
模型的删除事件中处理了相关家具的删除,但此事件不一定会一直被解雇
假设我有另一个名为House
的模型,其中包含多个房间(hasMany)。如果我决定删除它,其相关模型将被mysql删除并使用ON DELETE CASCADE
选项。然后,我将继续使用不再相关的表tables
,chairs
,couchs
中的数据,并且不再与rooms
表的任何行相关。
那么保持数据库与ON DELETE CASCADE
和Eloquent的多态关系一致的最佳方法是什么?
答案 0 :(得分:2)
如果你正在使用原始数据库(级联)方法,那就绕过了Eloquent,就无法做你想做的事了。
为House设置一个已删除的事件,该事件遍历其所有房间并删除它们,这再次触发房间的已删除事件。