我有以下代码来创建下拉菜单:
<div>
<label>Project List:</label>
{!!Form::select('projects_list[]', $projects_list, $project, ['id'=> 'projects_list','class'=>'form-control'])!!}
</div>
效果很好,它将在页面加载时显示 $project 中选定的项目。
($projects_list 是所有项目的列表,$project 是特定选定的项目)
如果我添加一些代码来创建“请选择选项”;
<div>
<label>Project List:</label>
{!!Form::select('projects_list[]', array_merge(['0' => 'Please select'], $projects_list), $project, ['id'=> 'projects_list','class'=>'form-control'])!!}
</div>
如果页面加载时没有项目通过,则正确显示选项,但如果通过则不显示项目。
是否有另一种方式来显示“请选择”选项,并且仍然能够显示所选项目?
**** 编辑 ****
我同时在做的是:
在我的控制器中:
$projects_list = Project::lists('id','name');
$projects_list = array_flip(array_merge(['Please select if applicable'=>0], $projects_list));
我发现,如果我不进行数组翻转/数组合并,id 就会转换为键,例如 0,1,2,3,而不是数据库 id 的 0、10、15、23 等。
也许这是目前最好的选择?或者有更优雅的解决方案吗?
**** 结束编辑 ****
要添加另一个选项,您可以使用
+
运算符将两个数组放在一起而不影响键
$projects_list = ['Please select if applicable'] + $projects_list;