【发布时间】:2021-01-11 19:07:07
【问题描述】:
我正在使用 Laravel Livewire v2,我需要将表单日期输入绑定到后端 Livewire 组件中的模型 Carbon 属性,但到期日期格式似乎是不可能的。
更准确地说:
- 选择日期时,表单日期输入选择器LiveWire使API调用发送正确的日期(例如:@ 987654323
- Livewire 组件正确接收字符串值并将其传递给模型
- 模型将字符串转换为 Carbon 对象并将其分配给其可填充属性
- Livewire 组件尝试将数据发送回客户端,但它没有对 Carbon 对象执行
->format('Y-m-d')格式,因此发送了一个序列化的日期对象 - 当对象未序列化时,前端接收例如
2012-12-25T20:30:00.000000+04:00 MSK - 日期输入中断
我还发现,在 Livewire v1 中,可以使用键值数组或自定义转换方法转换属性 (link),但在 v2 (link) 中已将其删除;有一个示例使用hydrate/dehydrate 方法来实现相同的效果,但该示例涵盖了组件属性的情况,而不是像我的情况那样的嵌套属性。
有没有办法在将数据发送回客户端时转换模型日期属性或添加格式?
【问题讨论】:
标签: laravel casting date-formatting laravel-livewire