我正在构建一个拥有用户和角色的应用。我希望具有管理员角色的用户能够更改其他用户角色。例如,从其他角色添加/删除它们。
为此,我设置了一个带有复选框的表单,其中列出了所有可用的用户角色:
查看
<fieldset>
<legend>Groups</legend>
@foreach($roles as $role)
{!! Form::checkbox($role->field) !!} <span>{{ $role->name }}</span><br>
@endforeach
</fieldset>
这导致产生以下内容:
[] Administrator
[] Supervisor
[] Employer
[] Contractor
我有一个方法可用于加载用户所属的角色:
/**
* Get all user roles.
*
* @param $id
* @return Collection
*/
public function getUsersRoles($id)
{
return $this->roleUser->where('user_id', $id)->get();
}
上述方法返回包含每个角色的对象。
如何使用此方法在我的视图中预先选择用户所属的角色?
答案 0 :(得分:1)
{!! Form::checkbox($role->field->name, $role->field->id, in_array($role->id, Auth::user()->getUsersRoles()->lists('id'))) !!}
检查当前角色ID是否在可用用户角色中。如果为true,则将选中该框。