0

我们如何一次将多个权限分配给一个角色?

    $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 如何包含多个权限?

请问有什么建议吗?

4

3 回答 3

3

看来您可以将数组传递给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]);
于 2018-10-25T07:59:06.587 回答
2
  1. 您可以将数组中的多个权限传递给givePermissionTo().

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

  3. 或者你甚至可以使用 laravel 的同步方法,因为 RolemorphToMany与 Permissions 有关系。所以$role->permissions()->sync($permissions);也工作

于 2018-10-25T08:05:27.587 回答
0

你好我的建议是使用

$role = 角色::findById(1); $role->givePermissionTo(Permission::all());

于 2022-02-08T15:44:56.373 回答