【发布时间】:2017-03-11 08:58:02
【问题描述】:
我需要 spatie/Laravel 权限方面的帮助。当我尝试分配时,它给了我错误 糟糕,好像出了点问题。
$role = new Role;
$n = count($request['permission_id']);
for($i=0; $i< $n ; $i++)
{
$role->givePermissionTo('9');
}
错误:
Connection.php 第 761 行中的 QueryException:SQLSTATE[23000]:完整性 违反约束:1048 列 'role_id' 不能为空(SQL: 插入
role_has_permissions(permission_id,role_id) 值 (9, ))
【问题讨论】:
-
我对 spatie 不熟悉,但您似乎需要先将角色保存到数据库中,然后才能将其分配给某人。
-
我已经在数据库中保存了一些角色
-
但是您正在创建一个新角色。
$role = new Role;与已保存的模型无关。更不用说你的代码没有多大意义。您正在计算您在请求中传递的数字 (X),然后循环将未保存的角色提供给用户 9,X 次。 -
这是我想做的事情 $role->givePermissionTo('POS' )
-
您正在尝试为不存在的角色添加权限。要么创建它
$role = Role::create(['name' => 'writer']);,要么从你的数据库中获取它:$role = Role::where('name', 'writer')->first();。然后你就可以给它权限了
标签: laravel