我了解如何通过将转换 <input type="date">
添加到模型的属性来将日期绑定到 date:Y-m-d
(从 Laravel Livewire v2.3 开始)。但是,我找不到任何关于是否可以通过强制转换为 <input type="time">
(使用一些适当的序列化)将模型的时间属性(即数据类型为 TIME 的属性)绑定到 datetime
的任何信息格式)。这可能吗?或者它尚未在 Livewire 中实现?
我自己尝试了几种不同的类型转换和序列化格式,但到目前为止都没有奏效。
H:i
在模型中,我将时间属性(在数据库中它具有时间数据类型,并且可以像往常一样使用 Carbon 可用的任何选项将其插入到刀片模板中)到日期时间,格式为 {{ 1}} 是 24 小时制,根据 H:i
通常需要的值带前导零。 [0]
模型的 <input type="time">
字段如下所示:
$casts
该视图具有此 protected $casts = [
'time' => 'datetime:H:i',
];
字段:
input
这不起作用(输入保持空白)。
我也尝试过将格式设置为 <input type="time" wire:model="item.time" />
、H:i:s
、H-i
、H-i-s
、Hi
,但它们都不起作用。>
答案 0 :(得分:2)
哎呀!似乎我只是忘记为 Livewire 中的时间属性添加验证。通过添加规则:
public Item $item;
protected $rules = [
'item.time' => 'required|date_format:H:i',
];
并使用 H:i
或 H:i:s
作为格式,该属性已绑定。这也可能与我在此 Livewire 中验证字段的方式有关。
我怀疑一般来说,只要属性被转换为正确的值,任何带有值的输入都可以被绑定。