【问题标题】:Laravel Livewire Date Cast and ValidationLaravel Livewire 日期转换和验证
【发布时间】:2021-06-12 20:53:33
【问题描述】:

我有一个带有模态的表单,而模态表单中的一个字段是日期字段。它在模型中被转换为:

'date_last_contact' => 'date:m/d/Y'

在 livewire 文件的 $rules 部分中,它被设置为:

'editing.date_last_contact' => 'date|nullable',

问题是如果我有人在字段中输入一个非日期、非空值并尝试保存,它会抛出一个错误,因为它没有验证......

Carbon\Exceptions\InvalidFormatException 无法解析“adff”:DateTime::__construct():无法解析位置 0 处的时间字符串 (adff) (a):在数据库中找不到时区

livewire 文件中的保存函数如下所示:

public function save()
    {   
        $this->validate();
        $this->editing->save();
        $this->showEditModal = false;
    }

似乎正在发生的事情是尝试将其投射到验证发生之前的某个日期。如何预防?

版本: Laravel:8.24.0 火线:2.3.8

【问题讨论】:

    标签: laravel laravel-livewire


    【解决方案1】:

    在提交表单之前尝试投射日期字段。

    【讨论】:

    • 这似乎违背了验证的目的,如果它是一个非日期、非空值,可能仍会引发错误。
    猜你喜欢
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 2020-11-20
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2022-01-24
    • 2021-03-17
    相关资源
    最近更新 更多