2016-10-28 32 views
0

我需要spatie/Laravel權限的幫助。當我嘗試分配它給我錯誤 哎呀,看起來像出了什麼問題。Laravel spatie/laravel-permissions

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

錯誤

QueryException在Connection.php線761: SQLSTATE [23000]:完整性約束違規:1048列 'ROLE_ID' 不能爲空(SQL:插入role_has_permissionspermission_idrole_id)值(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');