2017-10-12 20 views
0

なぜ私はこのエラーがあるのか​​分かりません。私は今度はassigneRoleと権限を作成しましたが、assignRoleは機能しません。私はそれを使用するとsyncまたはsaveが存在しないと言います。 WhereName、任意のアイデア?'Method save does not exist。'というメッセージが表示されたBadMethodCallException

これは私のユーザーモデルである:

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

にこの記事を参照してください、このメソッドpublic function givePermissionTo(パーミッション$許可) { リターンの$ this - >パーミッション() - >(セーブ$許可); }は動作しませんが、動作します。 –

+0

申し訳ありませんが、私はひどく自分自身を答えを参照して説明した。 – LorenzoBerti

+0

それは素晴らしい解決策です、ありがとう、私の友人。 –

答えて

2

が(>あなたはとてもます$ this-作る$this->rolesに)(追加しようとする役割を持っていますか)?

$this->rolesリターン結果 $this->roles()リターンモデルrelatioship。

差が$this->rolesからあると$this->roles()その場合はDifference between method calls $model->relation(); and $model->relation;

+0

2年前のlaravel 5.1からビデオを見ていて、コードが古くなったとか、または中止されたと思っていたのですが、最近私はそのことをやっています。重要な細部 –

関連する問題