所以我有以下验证:
'birth_date' => 'date_format:Y-m-d|before:deceased_date',
'deceased_date' => 'date_format:Y-m-d|after:birth_date',
问题是这些都不是必填字段。有人可以在没有birth_date的情况下输入已故的日期,反之亦然。目前,如果您发送的死亡日期没有出生日期,则无法通过after
验证。有没有办法只检查before
/ after
检查是否已发送其他日期?
要明确,这将是验证方案:
可以只发送一个。我只是想确定如果他们同时发送,那就检查这个人在出生前是不是死了,反之亦然。
答案 0 :(得分:4)
您可以使用required_with
和bail
来解决您的问题:
'birth_date' => 'bail|required_with:deceased_date|date_format:Y-m-d|before:deceased_date',
'deceased_date' => 'bail|required_with:birth_date|date_format:Y-m-d|after:birth_date',
<强>更新强>
您可以尝试sometimes
解决您的问题:
$validation = Validator::make($formData, [
...
]
$validation->sometimes('birth_date', 'before:deceased_date', function($input){
return ($input->birth_date && $input->deceased_date);
});
答案 1 :(得分:0)
您可以使用laravel的验证规则 - required_with
,如下所示:
'birth_date' => 'required_with:deceased_date|date_format:Y-m-d|before:deceased_date',
'deceased_date' => 'required_with:birth_date|date_format:Y-m-d|after:birth_date',
<强> required_with:FOO,酒吧,... 强>
验证字段必须存在且仅在存在任何其他指定字段时才为空。
希望这有帮助!