我有一个image_file数组(image_file[1]
,image_file[2]
)。它们是类型文件的输入。仅当在2上定义了另一个字段数组(proposition_type)时才需要此图像。
例如 :
proposition_type[1] == 2
,image_file[1]
必须填补;proposition_type[2] == 1
,image_file[2]
不得填补。我试过使用以下规则:
$rules = [
(...)
'image_file.*' => 'required_if:proposition_type.*,2|image',
];
但是会引发image_file字段上的任何错误。
此外,我在我的required
上使用了image_file.*
验证器,并且再次提出没有错误。
也许有人有解决方案吗?或者我可能做错了什么? :)
谢谢 !
如果要为required_if规则构造更复杂的条件,可以使用Rule :: requiredIf方法。此方法接受布尔值或闭包。传递Closure时,Closure应返回true或false以指示是否需要验证字段。这样的事可能适合你:
Validator::make($request->all(), [
'image_file[1]' => Rule::requiredIf(function () use ($request) {
if($request->proposition_type[1] == 2)
return true;
else
return false;
}),
'image_file[2]' => Rule::requiredIf(function () use ($request) {
if($request->proposition_type[2] == 1)
return false;
else
return true;
}),
]);