gpt4 book ai didi

php - Laravel 4 级联软删除

转载 作者:可可西里 更新时间:2023-11-01 06:40:35 25 4
gpt4 key购买 nike

是否有一种模块化的方法可以在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com