如何使用 RequiredIf 验证 laravel 验证日期
Posted
技术标签:
【中文标题】如何使用 RequiredIf 验证 laravel 验证日期【英文标题】:How to validate a date with RequiredIf validation laravel 【发布时间】:2020-10-24 19:25:28 【问题描述】:我在一个表单中有两个输入日期,一个是 start_date,另一个是 end_date,我正在尝试验证是否需要 end_date,如果 start_date 已经输入。
我做了那部分,但现在我不能添加其他检查,因为它不能正常工作。如果我使用 "date_format: Y-m-d",则该字段始终为必填项。
如果我想使用 "after_or_equal:",那么如果 start_date 为空,则该字段总是返回错误。
return [
"start_date" => "nullable|date_format:Y-m-d",
"end_date" => new RequiredIf($this->start_date !== NULL).'|date_format:Y-m-d|after_or_equal:start_date',
];
这是我的验证器,如果我删除 "date_format" 和 "after_or_equal" 的验证,它可以工作,但我需要验证所有这些数据
【问题讨论】:
【参考方案1】:您必须先使用可空规则,然后使用 required_with 和其余规则。
$this->validate($request, array(
'start_date' => "nullable|date_format:Y-m-d",
'end_date' => 'nullable|required_with:start_date|date_format:Y-m-d|after_or_equal:start_date',
));
【讨论】:
【参考方案2】:试试下面的方法会解决你的问题
return [
"start_date" => "nullable|date_format:Y-m-d",
"end_date" => "required_if:start_date,after_or_equal:start_date|nullable|date_format:Y-m-d",
];
【讨论】:
以上是关于如何使用 RequiredIf 验证 laravel 验证日期的主要内容,如果未能解决你的问题,请参考以下文章
WTForms 自定义验证器 - 需要在 RadioField 上