给一个角色多个权限 - Spatie
Give multiple permissions to a role - Spatie
我们如何一次为一个角色分配多个权限?
$permission1 = Permission::create(['name' => 'Create Client']);
$permission2 = Permission::create(['name' => 'View Invoice']);
$permission3 = Permission::create(['name' => 'Add Product']);
$role = Role::findById(1);
$role->givePermissionTo($permission1);
在上面,我只允许第一个。
因为这也是通过以下方式实现的,$role->syncPermissions($permissions);
我很困惑 $permission 如何包含多个权限?
有什么建议吗?
您似乎可以将数组传递给 givePermissionTo
,因此您可以执行以下操作:
$permission1 = Permission::create(['name' => 'Create Client']);
$permission2 = Permission::create(['name' => 'View Invoice']);
$permission3 = Permission::create(['name' => 'Add Product']);
$role = Role::findById(1);
$role->givePermissionTo([$permission1, $permission2, $permission3]);
您可以将数组中的多个权限传递给 givePermissionTo()
。
如果您想要分离之前分配给该角色的权限,请使用 syncPermissions()
或者您甚至可以使用 laravel 的同步方法,因为角色与权限有 morphToMany
关系。所以$role->permissions()->sync($permissions);
也有效
你好我的建议是使用
$角色=Role::findById(1);
$role->givePermissionTo(Permission::all());
我们如何一次为一个角色分配多个权限?
$permission1 = Permission::create(['name' => 'Create Client']);
$permission2 = Permission::create(['name' => 'View Invoice']);
$permission3 = Permission::create(['name' => 'Add Product']);
$role = Role::findById(1);
$role->givePermissionTo($permission1);
在上面,我只允许第一个。
因为这也是通过以下方式实现的,$role->syncPermissions($permissions);
我很困惑 $permission 如何包含多个权限?
有什么建议吗?
您似乎可以将数组传递给 givePermissionTo
,因此您可以执行以下操作:
$permission1 = Permission::create(['name' => 'Create Client']);
$permission2 = Permission::create(['name' => 'View Invoice']);
$permission3 = Permission::create(['name' => 'Add Product']);
$role = Role::findById(1);
$role->givePermissionTo([$permission1, $permission2, $permission3]);
您可以将数组中的多个权限传递给
givePermissionTo()
。如果您想要分离之前分配给该角色的权限,请使用
syncPermissions()
或者您甚至可以使用 laravel 的同步方法,因为角色与权限有
morphToMany
关系。所以$role->permissions()->sync($permissions);
也有效
你好我的建议是使用
$角色=Role::findById(1); $role->givePermissionTo(Permission::all());