如何解决Laravel / Blade:预选下拉选项
我正在使用foreach
循环通过bensampo's ENUMS库生成一个下拉列表,但是我需要能够预先选择其中一个,因为我具有编辑视图并且需要加载它我数据库中的选项。
我在编辑视图中的选择:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value =>$label)
<option value="{{$value}}">{{$label}}</option>
@endforeach
</select>
在我的 MailMessageController 中编辑函数:
return view('MailMessage.edit',[
'MailMessage' => $MailMessage],["MailMessageTypes" => MailMessageType::toSelectArray()
]);
我尝试在控制器中使用枚举库的getValues()
和getKeys()
,但由于foreach
不断生成所有选项,因此会为我生成(重复)。我正在使用select2插件
已添加:我正在使用select2 plugin作为列表。
解决方法
在“编辑”页面上,您将现有邮件作为$MailMessage
传递。我假设您的数据库的值为id
,因此可以作为$MailMessage->id
进行访问。在遍历并显示每个选项时,需要检查该选项的值是否等于正在编辑的消息的ID。如果匹配,则设置selected
attribute on the <option>
:
<select name="type" id="type" class="form-control">
@foreach ($MailMessageTypes as $value => $label)
<option value="{{$value}}" {{($MailMessage->id == $value) ? 'selected' : ''}}>
{{$label}}
</option>
@endforeach
</select>
在您的HTML中,您的<select>
最终看起来像:
<select name="type" id="type" class="form-control">
<option value="1">COM01</option>
<option value="2" selected>COM02</option>
<option value="3">COM03</option>
// ... the rest of the options
</select>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。