dima9595
@dima9595
Junior PHP

Как выводить у одной роли все пермишены и проверять активированы ли у роли?

Добрый день. Для своего проекта использую данный пакет: github для пермишенов и ролей.
Суть задачи такова:
Заходим в редактор какой-нить роли. Там должны выводиться все права, которые существуют. В этой части проблем нет. Дальше самое сложное для меня - проверять, активирован данный пермишен для этой роли или нет.

Код контроллера:
public function edit(int $id){
        if(auth()->user()->hasPermissionTo('admin.roles.edit')){
            $role = Role::with('permissions')->find($id);
            $permissions = Permission::all();

            dd($role);

            Breadcrumbs::addBreadcrumb('Роль: "' . $role->title . '"', route('admin.roles'));

            return view('admin.roles.edit', compact('role', 'permissions'));
        }else{
            flash('У вас не достаточно прав!')->warning();
            return redirect()->intended(route('admin.roles'));
        }
    }


Код View:
@foreach($permissions as $permission)
    {{ Form::checkbox('permissions[]',  $permission->id ) }}
    {{ Form::label($permission->name, $permission->name) }}<br>
@endforeach


Так же есть ещё вариант как это сделать - просто вручную добавлять список и через условия проверять, активирован ли данный пермишен или нет - но данный вариант пока не особо хочется использовать, только если по моему коду ни как не помочь.
  • Вопрос задан
  • 90 просмотров
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
Из документации:
You can determine if a role has a certain permission:
$role->hasPermissionTo('edit articles');


Из вопроса непонятно что именно вызывает проблему, поэтому точнее ответить не могу.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы