Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 未触发Laravel模型删除方法_Php_Laravel_Model_Eloquent - Fatal编程技术网

Php 未触发Laravel模型删除方法

Php 未触发Laravel模型删除方法,php,laravel,model,eloquent,Php,Laravel,Model,Eloquent,我有一个消息模型和一个反应模型。因此,当我删除一条消息时,所有文件都应该被删除 但是我的反应模型中的删除方法没有被触发 在我的信息中型号: public function delete() { $this->reactions()->delete(); return parent::delete(); } public function delete() { $files = $this->files; foreach ($files as $fi

我有一个
消息
模型和一个
反应
模型。因此,当我删除一条
消息时,所有
文件都应该被删除

但是我的
反应模型中的
删除
方法没有被
触发

在我的
信息中
型号:

public function delete()
{
   $this->reactions()->delete();
   return parent::delete();
}
public function delete()
{
    $files = $this->files;
    foreach ($files as $file)
    {
        $this->destroyFile($file);
    }

    return parent::delete();
}
在我的
反应
模型中:

public function delete()
{
   $this->reactions()->delete();
   return parent::delete();
}
public function delete()
{
    $files = $this->files;
    foreach ($files as $file)
    {
        $this->destroyFile($file);
    }

    return parent::delete();
}

所以当我
dd('test')它永远不会到达该方法。

您是否可以在迁移中执行此操作,即,反应是否具有引用消息上id的外键?@craig_h我的文件表正在使用变形关系。所以它只与一个用户(外键)关联。好的,这就解释了为什么不能使用级联。你真的应该把你的删除方法放在你的MessagesController里,而不是你的模型里,然后你就可以一次完成这个动作了。我认为在模型上用
delete
方法可以做到这一点。然后每次删除一个反应时,所有文件都会被删除。我认为您需要的是一个有说服力的事件,它允许您在模型上收听事件:您是否可以在迁移中这样做,例如,反应是否有引用消息id的外键?@craig_h我的文件表正在使用变形关系。所以它只与一个用户(外键)关联。好的,这就解释了为什么不能使用级联。你真的应该把你的删除方法放在你的MessagesController里,而不是你的模型里,然后你就可以一次完成这个动作了。我认为在模型上用
delete
方法可以做到这一点。然后每次删除反应时,所有文件都会被删除。我认为您需要的是一个
雄辩的事件
,它允许您收听模型上的事件: