作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
是否有一种模块化的方法可以在 L4 中执行级联软删除?
我的数据库已经设计为通过硬删除来执行此操作,因为所有表都与另一个表相关。但是,我正在使用软删除并且真的不想让 delete()
我的模型中的方法 - 仅仅是因为 (A) 模型的数量,以及 (B) 当其他模型发生变化时必须编辑所有模型中的 delete()
方法。
如有任何指点或提示,我们将不胜感激。
最佳答案
我使用 model events 进行级联删除,例如,在 Product 模型中,我绑定(bind)到已删除的事件,因此我可以软删除所有关系:
// Laravel's equivalent to calling the constructor on a model
public static function boot()
{
// make the parent (Eloquent) boot method run
parent::boot();
// cause a soft delete of a product to cascade to children so they are also soft deleted
static::deleted(function($product)
{
$product->images()->delete();
$product->descriptions()->delete();
foreach($product->variants as $variant)
{
$variant->options()->delete();
$variant->delete();
}
});
}
关于php - Laravel 4 级联软删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17243637/
我是一名优秀的程序员,十分优秀!