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

我想删除用户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  ·  1个月前

我吧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",

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
最佳答案

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

1个月前 评论
讨论数量: 5

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

1个月前 评论

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

1个月前 评论

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

1个月前 评论

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

4周前 评论
Zhiyi (楼主) 3周前
s51983 3周前

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

3周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!