Как мы можем назначить сразу несколько разрешений одной роли?
$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); тоже работают