Laravel Livewire 表单日期输入框无法正确获取展示日期值问题求助
Livewire 日期输入字段无法展示值的常见原因
- 格式不匹配:原生HTML5
date类型输入框仅支持YYYY-MM-DD格式的字符串值。如果绑定的Livewire属性存储的是Carbon实例、时间戳,或是Y/m/d、d/m/Y等其他格式的日期,输入框无法正确解析并展示内容。 - 属性赋值不规范:如果在组件
mount钩子之外的异步方法中给日期属性赋值,没有同步做格式转换,或是赋值操作没有触发Livewire重渲染,也会导致值无法正常展示。 - 绑定语法错误:未正确使用
wire:model绑定属性,或是绑定的属性名拼写错误,会导致前端和后端属性值无法同步。
修复示例
组件侧代码
public $selectedDate; public function mount() { // 从数据源拿到的日期需转换为HTML date输入框支持的格式 $this->selectedDate = $yourModel->date_column->format('Y-m-d'); } // 异步加载数据场景也要同步做格式转换 public function loadEditRecord($recordId) { $record = YourModel::find($recordId); $this->selectedDate = $record->date_column->format('Y-m-d'); }
视图侧代码
<!-- 正确绑定属性 --> <input type="date" wire:model="selectedDate">
问题现象参考:
内容的提问来源于stack exchange,提问作者Diego Cespedes
相关产品推荐
相关产品推荐


