Livewire中如何为Select字段设置默认选项
Laravel Livewire Select 默认选中状态不生效的解决过程
原始Select组件代码
<select wire:model="state" > <option value="">Choose a State:</option> @foreach($state_list as $abbr=>$state) <option >{{$state}}</option> @endforeach </select>
问题现象
需要为该Select设置默认选中的州,尝试过三种方式均无效:
- 直接设置组件的
$state属性 - 在
mount()方法中赋值 - 为对应option添加
selected属性
问题定位与解决
经排查发现问题出在option标签缺少value属性,且实际业务中该字段属于嵌套属性(例如name="bank[state]"这类结构)。针对这个情况,在组件的mount()方法中添加了嵌套属性的赋值逻辑,同时兼容动态添加的字段:
public function mount() { $us_state_properties = ['address', 'bank']; foreach($us_state_properties as $add) { $this->{$add.".state"} = "Florida"; } foreach($this->multi_us_state_properties as $add) { $this->{$add.".0.state"} = "Florida"; } }
说明:第二个循环用于处理表单内动态添加的字段,为第一条动态字段设置默认州。
内容的提问来源于stack exchange,提问作者iateadonut
相关产品推荐
相关产品推荐

