我已经完成了传递给视图的变量的数据转储,我知道它有正确的数据块。我还交叉检查了下拉列表它们的选项内置于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。请检查数组键和存储的数据库值