Laravel Livewire绑定模型碳属性
我使用的是Laravel Livewire v2,我需要将表单日期输入绑定到后端Livewire组件中的模型碳属性,但似乎无法设置到期日期格式 更准确地说:Laravel Livewire绑定模型碳属性,laravel,casting,date-formatting,laravel-livewire,Laravel,Casting,Date Formatting,Laravel Livewire,我使用的是Laravel Livewire v2,我需要将表单日期输入绑定到后端Livewire组件中的模型碳属性,但似乎无法设置到期日期格式 更准确地说: 选择日期时,表单日期输入选择器livewire将进行api调用,发送正确的日期(例如:2020-02-02) Livewire组件正确接收字符串值并将其传递给模型 模型将字符串强制转换为碳对象,并将其指定给其可填充属性 Livewire组件尝试将数据发送回客户端,但它不会对Carbon对象执行->格式(“Y-m-d”)格式,因此会发送序列
- 选择日期时,表单日期输入选择器livewire将进行api调用,发送正确的日期(例如:
)2020-02-02
- Livewire组件正确接收字符串值并将其传递给模型
- 模型将字符串强制转换为碳对象,并将其指定给其可填充属性
- Livewire组件尝试将数据发送回客户端,但它不会对Carbon对象执行
格式,因此会发送序列化日期对象->格式(“Y-m-d”)
- 当对象未序列化时,前置接收,例如
2012-12-25T20:30:00.000000+04:00 MSK
- 日期输入中断
水合物
/脱水
方法来实现相同的效果,但该示例涵盖了组件属性的情况,而不是像我这样的嵌套属性
在将数据发送回客户机时,是否有方法转换模型日期道具或添加格式?更新(2020-10-15)
自Livewire v2.3以来,模型转换现在可以在直接绑定到模型属性时工作(akawire:Model
)
你所需要做的就是找到你的模特并提供你的日期选择,让我们以一个Post
模特为例:
类后扩展模型
{
受保护的$casts=[
'发布时间'=>'日期:Y-m-d'
];
}
这将让Livewire知道,您的published_at
字段应以Y-m-d
格式序列化,以便在客户端使用,并在更新时将其转换回Carbon
(DateTime
)实例
现在,您可以将其安全地附加到
字段:
旧答案
目前,有一个未决的PR旨在解决Livewire v2的问题。如果你去支持它,会有很大帮助:)