授予角色多个权限-Spatie

时间:2018-10-25 07:55:56

标签: laravel 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如何包含多个权限?

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

似乎您可以将数组传递给givePermissionTo,所以您可以执行以下操作:

[LiteralString("johndoe"), LiteralString("TopSecret123")]

答案 1 :(得分:1)

  1. 您可以将数组中的多个权限传递给givePermissionTo()

  2. 如果要分离角色先前分配的权限,请使用syncPermissions()

  3. 或者您甚至可以使用laravel的sync方法,因为Role与Permissions具有morphToMany关系。所以$role->permissions()->sync($permissions);也可以