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
Другие вопросы по тегам