我不明白为什么我有这个错误,我只是创建了assigneRole和权限,但assignRole不起作用,当我使用它时说同步或保存不存在,我认为它必须是因为WhereName,任何想法?
这是我的用户模型:
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function assignRole($role)
{
return $this->roles->save(
Role::whereName($role)->firstOrFail()
);
terminal php artisan tinker
$user = User::latest()->first();
$user->assignRole('editor');
}
答案 0 :(得分:2)
您是否尝试将()添加到$this->roles
,以便制作$ this-> roles()?
$this->roles
返回结果
$this->roles()
返回模型关系。
与$this->roles
和$this->roles()
存在差异,请参阅此帖Difference between method calls $model->relation(); and $model->relation;