Laravel如何强制删除所有与父级相关的模型?

Laravel如何强制删除所有与父级相关的模型?,laravel,Laravel,我试图用一个关系强制删除模型。我在模型中为它做了一个自定义函数 /** * Force delete active ingredient with relationships * @return bool|null * @throws \Exception */ public function bruteDelete() { $this->brandPresentations()->forceDelete

我试图用一个关系强制删除模型。我在模型中为它做了一个自定义函数

    /**
     * Force delete active ingredient with relationships
     * @return bool|null
     * @throws \Exception
     */
    public function bruteDelete()
    {
        $this->brandPresentations()->forceDelete();
        return parent::forceDelete();
    }
这就是我调用函数的方式

Active_ingredients::withTrashed()->find($request->get('elementID'))->bruteDelete();
该力完美地删除了
brandPresentations
。但它会软删除父级,即
活性成分

我尝试使用forceDelete()作为函数名来覆盖Laravel方法,但它给出了相同的结果。
如何强制删除这两个模型

您可以在
boot
这样的方法中使用它

protected static function boot()
{
    parent::boot();

    self::deleting(function (User $model) {
        if ($model->forceDeleting){
            $model->brandPresentations()->forceDelete();
        }
    });
}
然后运行
forceDelete

Active_ingredients::withTrashed()->find($request->get('elementID'))->forceDelete();

我希望它能起作用:)

我建议在迁移时使用cascade on delete

$table->foreign('model_id')->引用('id')->on('models')->onDelete('cascade')

通过调用
$item->forceDelete()
也将删除其所有相关外键。

我很确定这对软删除不起作用。

您是否使用了
$this->forceDelete()
而不是
parent::forceDelete()
?@OluwatobiSamuelOmisakin尝试了这两种方法。我真的想知道为什么不起作用work@MrCarrot我还是不知道为什么这不起作用,但答案中的方法非常有效!:)