我正在寻找销毁雄辩集合的策略,例如模型“包含”其他模型。Laravel:删除雄辩集合
在Ruby on Rails的ActiveRecord中,有一个dependent: :destroy
选项,可以在定义关系时放置,也就是说,例如,一个order
被删除,然后order_lines
也必须去。
Laravel中有类似的东西吗?或者除了手动清理并将其包装在交易中之外,还有其他替代方案?
我正在寻找销毁雄辩集合的策略,例如模型“包含”其他模型。Laravel:删除雄辩集合
在Ruby on Rails的ActiveRecord中,有一个dependent: :destroy
选项,可以在定义关系时放置,也就是说,例如,一个order
被删除,然后order_lines
也必须去。
Laravel中有类似的东西吗?或者除了手动清理并将其包装在交易中之外,还有其他替代方案?
如果使用Laravel架构构建,你应该使用外键和外键添加例如:
$table->foreign('entry_id')
->references('id')
->on('entries')
->onDelete('CASCADE');
当然你也可以做,例如phpMyAdmin的相同。
当使用这样的结构,如果从entries
这种情况下,记录将被删除,自动从该表中有entry_id
一样id
从entries
正被删除将被删除的记录。
它不是一个触发器,因为触发器的结构要复杂得多,它只是定义关系并告诉如果相关的父记录将被删除,该怎么做。
尽可能多是一种做法,它不是解决方案。我正在寻找让Laravel/Eloquent工作的方法。不是我的SQL数据库。 – 2014-10-16 20:38:47
@NielsB也许你想看看http://stackoverflow.com/questions/14174070/automatically-deleting-related-rows-in-laravel-eloquent-orm然后,但使用'onDelete'是我认为没有编码的最佳选择 – 2014-10-16 20:54:43
我同意,但我更喜欢编码。感谢您提供其他问题的链接。我正在投票结束这个重复。 – 2014-10-16 21:02:10
你有没有想过为DB中的相关表正确设置ondelete? – 2014-10-16 19:44:25
ondelete?你在谈论数据库触发器吗?我不想把这种逻辑放入数据库中。 – 2014-10-16 19:49:02
[自动删除Laravel中的相关行(Eloquent ORM)]的可能的重复(http://stackoverflow.com/questions/14174070/automatically-deleting-related-rows-in-laravel-eloquent-orm) – 2014-10-16 21:01:19