Laravel доверится, как проверить разрешение роли в клинке?
Я использую доверие в моем проекте Laravel. В блейд-файле при редактировании роли я хочу отобразить все разрешения с флажком.
Но я застрял в мысли, что я хочу, чтобы флажок состояния проверялся, если роль имеет разрешение. Я передаю роль и все разрешения блейду и пытаюсь
@foreach($permissions as $permission)
<input type="checkbox" value="{{$permission->name}}"
@if($role->hasPermission($permission->name))
checked="checked"
@endif
@endforeach
но это не сработало
Я также пытаюсь преобразовать $ role и $ permissions в массив и передать их в blade-сервер и дважды использовать foreach, это тоже не сработало. Есть ли способ сделать это?
2 ответа
Решение
Вы можете попробовать это:
@foreach($permissions as $permission)
@foreach($roles as $role)
@if($permission->hasRole($role->name))
<input type="checkbox" checked="checked" name="perms[[]" value="{{ $permission->id }}">
@else
<input type="checkbox" name="perms[]" value="{{ $permission->id }}">
@endif
@endforeach
@endforeach
Оказывается, что $role также может вызывать метод hasPermission
@foreach($permissions as $permission)
<div class="checkbox pull-left" >
<label class="">
<input type="checkbox" name="perms[]" value="{{$permission->id}}"
@if($role->hasPermission($permission->name)) checked @endif>
<p>{{$permission->display_name}}</p>
</label>
</div>
@endforeach