在用户\编辑视图中,我将所有角色显示为复选框。我想检查已经分配给用户的角色。表单中的所有其他字段已经用数据库中的详细信息填写。我正在尝试使用Spatie的Laravel权限。
@foreach ($roles as $role)
<input type="checkbox" value="{{$role->id}}" name="{{$role->name}}" > {{$role->name}}</input>
@endforeach
我想使用纯HTML。我读到有关急切加载的信息,但据我了解,它只会给我分配给用户的角色,而不是全部。
当我单击更新按钮时,我想使用sychRoles()
功能。
我希望建立类似于Voyager使用的视图:example。
答案 0 :(得分:0)
尝试一下。它将检查是否有任何登录用户。然后,它将使用角色关系中的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
答案 1 :(得分:0)
尝试以下:
在控制器中:
$roles = $user->roles;
在刀片文件中:
@foreach ($roles as $role)
<input type="checkbox" value="{{$role->id}}" name="{{$role->name}}"> {{$role->name}}</input>
@endforeach
答案 2 :(得分:-1)
这是控制器代码
public function edit($id)
{
$role = role::find($id);
$permissions = Permission::all();
return view('admin.role.edit',compact('role','permissions'));
}
在视野范围内
<div>
<label for="name">Assigned Permissions</label>
@foreach ($permissions as $permission)
@if ($permission->for == 'user')
<div class="checkbox">
<label><input type="checkbox" name='permission[]' value="{{ $permission->id }}"
@foreach ($role->permissions as $give_role)
@if ($give_role->id == $permission->id)
checked
@endif
@endforeach
>{{ $permission->name }}</label>
</div>
@endif
@endforeach
</div>