Laravel - выделение ролей, которые уже назначены пользователю - PullRequest
0 голосов
/ 28 декабря 2018

В представлении пользователя \ редактирования Я показываю все роли в виде флажков.Я хотел бы, чтобы роли, которые уже назначены пользователю, были отмечены.Все остальные поля в форме уже заполнены данными из базы данных.Я пытаюсь работать с разрешениями Spatie Laravel.

Изображение вида

@foreach ($roles as $role)
    <input type="checkbox" value="{{$role->id}}" name="{{$role->name}}" > {{$role->name}}</input>
@endforeach

Я хотел бы использовать чистый HTML.Я читал об активной загрузке, но, насколько я понял, это даст мне только роли, назначенные пользователю, а не все.

Я хочу использовать функцию sychRoles(), когда нажимаю кнопку обновления.Я надеялся создать вид, аналогичный тому, который использует Voyager: пример .

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

попробуйте ниже:

в контроллере:

$roles = $user->roles;

в блейд-файле:

@foreach ($roles as $role)
    <input type="checkbox" value="{{$role->id}}" name="{{$role->name}}"> {{$role->name}}</input>
@endforeach
0 голосов
/ 28 декабря 2018

Попробуй это.Он проверит, есть ли зарегистрированный пользователь.Тогда он будет сопоставлять роли этого пользователя с идентификатором из отношений ролей.

    @foreach ($roles as $role)
        <input type="checkbox" value="{{$role->id}}" name="{{$role->name}}" 
        @if(auth()->check()) 
             @foreach(auth()->user()->roles as $userRole)
                 @if($userRole->id==$role->id) {{"checked"}}
                 @endif
             @endforeach
       @endif> {{$role->name}}</input>
    @endforeach
...