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