首页 > 解决方案 > Laravel - 突出显示已分配给用户的角色

问题描述

在用户\编辑视图中,我将所有角色显示为复选框。我想检查已经分配给用户的角色。表格中的所有其他字段都已填写数据库中的详细信息。我正在尝试使用 Spatie 的 Laravel 权限。

视图的图像

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

我想使用纯 HTML。我读到了急切加载,但据我了解,它只会给我分配给用户的角色,而不是所有角色。

sychRoles()单击更新按钮时,我想使用功能。我希望建立与 Voyager 使用的类似的视图:example

标签: laravelcheckboxviewedit

解决方案


尝试这个。它将检查是否有任何登录用户。然后它将将该用户的角色与角色关系中的 id 匹配。

    @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

推荐阅读