繁体   English   中英

Laravel从数据库预选复选框字段的最佳方法

[英]Laravel best way to pre-select checkbox fields from database

我正在构建一个具有用户和角色的应用程序。 我希望具有管理员角色的用户能够更改其他用户角色。 例如,将其添加/删除其他角色。

为此,我设置了一个带有复选框的表单,其中列出了所有可用的用户角色:

视图

<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();
}

上面的方法返回一个包含每个角色的对象。

如何使用此方法预先选择用户所属的角色?

{!! Form::checkbox($role->field->name, $role->field->id, in_array($role->id, Auth::user()->getUsersRoles()->lists('id'))) !!}

您检查当前角色ID是否在可用的用户角色内。 如果为true,则将选中该框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM