我正在寻找一种销毁Eloquent聚合的策略,例如: “包含”其他模型的模型。
在Ruby on Rails的ActiveRecord中,有一个dependent: :destroy
选项可以在定义关系时放置,这意味着如果删除order
,然后order_lines
也必须删除。
Laravel有类似的东西吗?或者除了在交易中手动清理和包装它之外的任何其他替代方案?
答案 0 :(得分:1)
如果使用Laravel架构构建器,则应使用外键和外键添加,例如:
$table->foreign('entry_id')
->references('id')
->on('entries')
->onDelete('CASCADE');
您当然也可以使用例如phpMyAdmin。
使用此类构造时,如果在这种情况下,entries
中的记录将被删除,则会自动从此表中记录entry_id
与id
相同的entries
正在删除的内容将被删除。
它不是触发器,因为触发器结构要复杂得多,它只是定义关系并告诉如果相关父记录将被删除该怎么做。