我正在使用 mysql 的 Eloquent 多态关系和 ON DELETE CASCADE
选项,担心我的数据会随着时间的推移保持一致。让我解释一下:
如果我有一个模型房间,其中包含多种类型的家具(morphMany of Table
、Chair
、Couch
...),以及我决定删除它,他的相关家具不会被删除。
为了解决这个问题,我在 Room
模型的 delete 事件 中处理了相关家具的删除,但是这个事件不一定会被触发一直。
假设我有一个名为 House
的模型,其中包含多个房间 (hasMany)。如果我决定删除它,它的相关模型将被 mysql 删除,带有 ON DELETE CASCADE
选项。然后,我将保留表 tables
、chairs
、couchs
中不再相关且与 的任何行无关的数据code>rooms
table 了。
那么保持数据库与 ON DELETE CASCADE
和 Eloquent 的多态关系一致的最佳方法是什么?
最佳答案
如果您使用的是原始数据库(级联)方法,则会绕过 Eloquent 并且无法执行您想要的操作。
为 House 设置 deleted 事件,遍历其所有 Rooms 并删除它们,这再次触发 Room 的 deleted 事件。
关于mysql - Laravel 4.0 级联删除与多态关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296987/