【问题标题】:Laravel Livewire wire:model binding time attributes to input type="time"Laravel Livewire 线:模型绑定时间属性到输入 type="time"
【发布时间】:2021-07-09 02:56:12
【问题描述】:

我了解如何通过将演员 date:Y-m-d 添加到模型的属性来将日期绑定到 <input type="date">(从 Laravel Livewire v2.3 开始)。但是,我找不到任何关于是否可以通过强制转换为datetime(使用一些适当的序列化格式)将模型的时间属性(即数据类型为 TIME 的属性)绑定到<input type="time"> 的任何信息。这可能吗?还是目前还没有在 Livewire 中实现?

我自己尝试了几种不同的演员阵容和序列化格式,到目前为止都没有奏效。

将时间属性转换为H:i

在模型中,我将时间属性(在数据库中它具有时间数据类型,并且可以像往常一样使用 Carbon 可用的任何选项很好地插入刀片模板)转换为日期时间,格式为 @987654327 @ 这是 24 小时制,前导零与 <input type="time"> 通常要求的值一致。 [0]

模型的$casts 字段如下所示:

protected $casts = [
  'time' => 'datetime:H:i',
];

视图有这个input 字段:

<input type="time" wire:model="item.time" />

这不起作用(输入保持空白)。

我也尝试过设置为H:i:sH-iH-i-sHiHis 的格式,这些都不起作用。

【问题讨论】:

    标签: laravel casting datetime-format laravel-livewire


    【解决方案1】:

    哎呀!似乎我只是忘记在 Livewire 中添加时间属性的验证。通过添加规则:

    public Item $item;
    
    protected $rules = [
        'item.time' => 'required|date_format:H:i',
    ];
    

    并使用H:iH:i:s 作为格式,绑定了属性。这可能也与我在此 Livewire 中验证我的字段的方式有关。

    我怀疑一般来说,只要将属性转换为正确的值,任何带值的输入都可以绑定。

    【讨论】:

      猜你喜欢
      • 2021-09-10
      • 2021-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      相关资源
      最近更新 更多