在Laravel中的表单模型绑定没有在下拉列表中从数据库中预先选择正确的选项


Form Model binding in Laravel not preselecting correct option from database in drop down list

我已经完成了传递给视图的变量的数据转储,我知道它有正确的数据块。我还交叉检查了下拉列表它们的选项内置于HTML中而不是作为数组传递。例如,看看HTML中的下拉菜单:

<div class="col-sm-7">
   {{Form::select('prefix', ['Mr'=>'Mr','Ms'=>'Ms','Mrs'=>'Mrs','Miss'=>'Miss','Dr'=>'Dr','Prof'=>'Prof'],null,['id'=>'prefix','class'=>'select2 select-block-level chzn-select','name' => 'prefix'])}}
</div>

对于这个下拉菜单,一切正常。我看到正确的选项预先选定,我看到的选项,因为他们应该是。$data->prefix也可以很好地代替简单的prefix作为Form::select的第一个参数。

但是对于下拉列表的第二个参数是数组的下拉列表就像这样:

<div class="col-sm-7">
   {{Form::select('team',$data->teams,null, ['id'=>'team','class'=>'select2 select-block-level chzn-select','name'=>'team','required'=>'required'])}}
</div>

…无论数据库中$data->team的值是多少,总是选择第一个选项。只是为了记录$data->teams$data->team是两个不同的变量。一个包含选项,后者包含特定人员的数据项。我认为问题是键和值不匹配…因为它适用于第一个select,因为它的选项有KV对…我不知道,你们觉得呢?

在这种情况下,laravel检查数组键使用存储的数据库字段。如果匹配使用数据库值保存在select中的数组键,则自动选择它。例如:Your array is

`$array=['a' =>name1,'b' => 'name2']`.

如果'a'存储在数据库中,则name1选择auto。请检查数组键和存储的数据库值