BadMethodCallException,消息“方法保存不存在”。

时间:2017-10-12 10:46:10

标签: php laravel

我不明白为什么我有这个错误,我只是创建了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');
}

1 个答案:

答案 0 :(得分:2)

您是否尝试将()添加到$this->roles,以便制作$ this-> roles()?

$this->roles返回结果 $this->roles()返回模型关系。

$this->roles$this->roles()存在差异,请参阅此帖Difference between method calls $model->relation(); and $model->relation;