【问题标题】:Laravel best way to pre-select checkbox fields from databaseLaravel 从数据库中预选复选框字段的最佳方法
【发布时间】:2015-09-07 17:28:09
【问题描述】:

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

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

查看

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

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

如何使用此方法在我的视图中预先选择用户所属的角色?

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:
    {!! Form::checkbox($role->field->name, $role->field->id, in_array($role->id, Auth::user()->getUsersRoles()->lists('id'))) !!}
    

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

    【讨论】:

    • 谢谢,帮了大忙。我只需添加-&gt;toArray() 即可将lists() 转换为数组。
    • 忘记了这个小部分,抱歉:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2014-03-16
    相关资源
    最近更新 更多