2016-10-28 12 views
0

私はspatie/Laravelの権限が必要です。それを割り当てようとするとエラーが出る 何か問題が起きたようです。 SQLSTATE [23000] :整合性制約違反:1048列が 'ROLE_ID' はSQL(nullにすることはできません。role_has_permissionspermission_idrole_id)の値に挿入Connection.phpライン761にLaravel spatie/laravel-permissions

$role= new Role; 
    $n=count($request['permission_id']); 
    //dd($count); 
    for($i=0; $i< $n ; $i++) 
    { 
     $role->givePermissionTo('9'); 
    } 

エラー

QueryException (9))

+1

を割り当てますあなたが誰かにそれを割り当てることができます前にDB。 – user3158900

+0

私は既にいくつかのロールをDBに保存しています –

+0

しかし、あなたは新しいロールを作成しています。 '$ role = new Role;'はすでに保存されているモデルとは関係ありません。あなたのコードはあまり意味がありません。あなたはリクエストで渡した数字(X)を数えているので、保存していない役割をユーザー9にX回送信します。 –

答えて

1

あなたはすでに、あなたはちょうどこのようにそれを得るために役割が必要になったとき:

$role = Role::find($id); 
その後

または(あなたが名前によってそれを取得したい場合)

$role = Role::where('name', '=' , $name)->get(); 

と私はspatieに慣れていないんだけど、あなたがする役割を保存する必要があるように見えるの許可

$role->givePermissionTo('name of the permission');