You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Blade中让select下拉框的option值与时区名称一致

问题原因

Laravel 提供的 Form::select 方法的第二个参数要求传入关联数组,默认规则为:

  • 数组的键名会作为下拉选项 <option> 的 value 属性值
  • 数组的键值会作为下拉选项的显示文本

你直接传入的 DateTimeZone::listIdentifiers() 方法返回的是默认以 0、1、2 为索引的索引数组,所以渲染后 option 的 value 自然就是数组的索引值,和显示的时区名称不一致。

解决方法

你可以用 PHP 内置的 array_combine() 方法处理时区数组:该方法接收两个数组作为参数,第一个数组的值会作为新数组的键名,第二个数组的值会作为新数组的键值。我们将时区列表同时作为两个参数传入,就能生成键名与键值完全相同的关联数组,刚好符合 Form::select 的参数要求。

修改后的模板代码如下:

{{ Form::select('timezone', array_combine(DateTimeZone::listIdentifiers(), DateTimeZone::listIdentifiers()), $result->timezone) }}

提示:你原代码中 $result->timezone] 末尾多了一个多余的方括号,上述代码已经同步修正了这个语法问题。

内容的提问来源于stack exchange,提问作者Danabek Duisekov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 05:15:00