删除关联数据遇到了问题.

我想删除用户Influencers时同时删除用户关联的数据比如:讨论数据Comment.

尝试过以下的方法但是无效, 没删除Comment数据库里面关联的数据
    public static function boot() {
        parent::boot();

        static::deleting(function($Influencers) { // before delete() method call this
            $Influencers->comments()->delete();
            $Influencers->comment()->delete();

        });
    }

laravel 版本:6.0

我的Model 如下

删除关联数据遇到了问题.

删除关联数据遇到了问题.

以下是controller:

删除关联数据遇到了问题.

以下是数据库

删除关联数据遇到了问题.

附言 1  ·  4年前

我吧InfluencersController.php 的destroy改成了
public function destroy($id)
{
$influencers = Influencers::find($id);
$influencers->delete();
}

提示错误:
"message": "Call to undefined method App\Influencers::comment()",
"exception": "BadMethodCallException",
"file": "/Applications/MAMP/htdocs/zhiyi/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php",

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

destroy里面建议使用Influencers::find(id)->delete() 这种写法。还有model中,建议关联删除使用deleted

4年前 评论
讨论数量: 5

在控制器中要使用first()查询后在delete才能触发删除

4年前 评论

where 方法返回的是 \Illuminate\Database\Eloquent\Builder 类,这个类的 delete 方法并没有触发 deleting操作, deletingmodel 类触发的,你要查询实例化出 model类再调用它的delete方法删除

4年前 评论

destroy里面建议使用Influencers::find(id)->delete() 这种写法。还有model中,建议关联删除使用deleted

4年前 评论

数据库设计的时候使用外键约束级联删除就好了

4年前 评论
Zhiyi (楼主) 4年前
s51983 4年前

"message": "Call to undefined method App\Influencers::comment()",
这么明显。。。
你只定义了comments,又没定义comment。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!