【问题标题】:Laravel Multi-select dropdown value not display in edit formLaravel多选下拉值不显示在编辑表单中
【发布时间】:2021-09-12 11:12:03
【问题描述】:

我有这样的表用户和分支

id name  branch_code
1  ABC   ["011","012","013","014"]
2  DEF   ["014"]

表分支

id branch_code branch_name
1   011        XXX
2   012        YYY
3   013        ZZZ
4   014        WWW

新建用户时,BRANCH有多选下拉菜单,一个用户可以选择多个分支。

我可以将多选下拉菜单保存到 branch_code 列中的表用户中。但我在编辑表单中显示所选值时遇到问题

这里是编辑表单的多选下拉菜单

<select class="form-control" name="branch[]" id="users" multiple>
        @foreach ($branch as $branch)
             <option @if ($branch->branch_code==$user->branch_code)
                      selected
                    @endif value="{{$branch->branch_code}}">
                    {{$branch->branch_name}}
             </option>
         @endforeach
   </select>

编辑控制器

 public function edit($id)
{
  
    $branch = Branch::where('status','1')->get();
    $user = User::where('id',$id)->first();
    return view('admin.edit', compact('user','branch'));
}

在编辑表单中,我想在下拉列表中显示所有具有选定分支和未选定分支的分支。对于选定的分支,它将用“选定”注释或类似的东西突出显示。但现在只显示所有分支,对选定的分支没有备注

【问题讨论】:

    标签: php laravel option multi-select


    【解决方案1】:

    $user-&gt;branch_code是数组或数组的json字符串。

    如果是json字符串那么$user-&gt;branch_code = json_decode($user-&gt;branch_code)先。

    当你有数组时 - 你可以这样做:

    <option
        @if (in_array($branch->branch_code, $user->branch_code)) selected @endif
        value="{{$branch->branch_code}}"
    >
        {{$branch->branch_name}}
    </option>
    

    【讨论】:

      猜你喜欢
      • 2020-05-14
      • 1970-01-01
      • 2020-05-08
      • 2015-08-23
      • 2018-08-05
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多