Добавьте несколько разрешений к одной роли, предоставьте основанные на ролях разрешения для Laravel 5
Я просто добавляю доверие проекту Laravel, я могу создать роль, создать разрешение, attachPermission, assignRole.
Теперь я хочу прикрепить несколько разрешений к одной роли, например, я добавляю эти разрешения [create-user,edit-user,remove-user,update-user] к роли superAdmin.
public function attachPermission(Request $request){
$role = Role::where('name', '=', $request->input('role'))->first();
$permission = Permission::where('name', '=', $request->input('name'))->first();
foreach ($permission as $pers){
$role->attachPermissions($pers);
}
return response()->json("done");
}
Этот код имеет только последнее разрешение, это бэкэнд, который я тестирую с почтальоном.
Так что лучше, зачем это делать? и спасибо за помощь.
1 ответ
Решение
Сначала получите разрешения, которые вы хотите назначить роли:
$permissionNames = ['name1', 'name2', 'name3'];
$permissions = Permission::whereIn('name', $permissionNames)->get();
и тогда вы можете передать $permissions
Коллекция в attachPermissions()
метод, который принимает массив моделей Eloquent:
$role->attachPermissions($permissions);