Добавьте несколько разрешений к одной роли, предоставьте основанные на ролях разрешения для 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);
Другие вопросы по тегам