mysql - Laravel 4.0 级联删除与多态关系

标签 mysql laravel laravel-4 cascade

我正在使用 mysql 的 Eloquent 多态关系和 ON DELETE CASCADE 选项,担心我的数据会随着时间的推移保持一致。让我解释一下:

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

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

假设我有一个名为 House 的模型,其中包含多个房间 (hasMany)。如果我决定删除它,它的相关模型将被 mysql 删除,带有 ON DELETE CASCADE 选项。然后,我将保留表 tableschairscouchs 中不再相关且与 的任何行无关的数据code>rooms table 了。

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

最佳答案

如果您使用的是原始数据库(级联)方法,则会绕过 Eloquent 并且无法执行您想要的操作。

为 House 设置 deleted 事件,遍历其所有 Rooms 并删除它们,这再次触发 Room 的 deleted 事件。

关于mysql - Laravel 4.0 级联删除与多态关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21296987/

相关文章:

php - laravel 5 迁移向我的数据库表添加了一些主键。如何预防呢?

php - 未找到特征 'Illuminate\Notifications\HasDatabaseNotifications'

laravel - 如何验证整个请求是 Laravel 中的数组?

php - 如何将时间戳值更新/插入到 PHP/MySQL 中的时间戳字段中?

php - Laravel 使用哈希作为验证器

Mysql 将多行合并为非空值的一行

mysql - 如何分离 MySQL 中混合在一起的地址字符串

mysql - 错误代码 1215 : Cannot add foreign key constraint

php - 在 Blade Laravel 5.3 中显示聚合

php - Laravel 4.1 _token 表单提交错误