Call to undefined method Illuminate\Database\Query\Builder::diff()

来源:15-8 逻辑实现-测试和数据添加

慕设计8011436

2019-04-30

报了这个错误,请大家帮我出下主意
//储存用户角色
public function storeRole(\App\AdminUser $user)
{

    $this->validate(\request(),[
        'roles'=>'required|array',
    ]);
    $roles=\App\AdminRole::findMany(\request('roles'));

    $myRoles=$user->roles();
    //dd($myRoles);
    //要增加的
    //diff方法将集合和另一个集合或原生PHP数组作比较:
    $addRoles=$roles->diff($myRoles); //得到的是与自身没有的集合
    //dd($myRoles);
    foreach ($addRoles as $role)
    {
        $user->assignRole($role);
    }

    //要删除的
    $deleteRoles=$myRoles->diff($role);
   foreach($deleteRoles as $role)
   {

       $user->deleteRole($role);
   }

    return back();
    
}
写回答

1回答

轩脉刃

2019-05-05

$myRoles=$user->roles; 需要理解laravel中的model使用relation 的时候有带函数括号和没有带函数括号的区别。没有带表示返回的是对象,有带表示返回的是relation builder

0
2
weixin_慕仰1549851
老师在laravel中对象和 relation builderd的区别在哪?以你回答的$myRoles=$user->roles; 为例子。
2020-04-29
共2条回复

Laravel快速开发简书

Laravel最新特性结合Mysql异步消息队列、ElasticSearch搜索引擎、Debugbar调试利器开发简书

1218 学习 · 613 问题

查看课程