在 Laravel 5 中显示“请选择”选项或显示“已选择”选项的下拉菜单

问题描述 投票:0回答:1

我有以下代码来创建下拉菜单:

<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 等。

也许这是目前最好的选择?或者有更优雅的解决方案吗?

**** 结束编辑 ****

php laravel-5
1个回答
1
投票

要添加另一个选项,您可以使用

+
运算符将两个数组放在一起而不影响键

$projects_list = ['Please select if applicable'] + $projects_list;
© www.soinside.com 2019 - 2024. All rights reserved.