Laravel required_without 数组中的验证规则
Laravel required_without validation rule in array
假设我有一个由 property_a
和 property_b
组成的对象,提交时必须至少接收这两个属性之一。
如果对象只是一个,我可以使用 required_without
验证规则如下
return [
'property_a' => ['required_without:property_b'],
'property_b' => ['required_without:property_a'],
];
如果我的对象本身在另一个对象中,使用点分符号会很容易:
return [
'parent_object.property_a' => ['required_without:parent_object.property_b'],
'parent_object.property_b' => ['required_without:parent_object.property_a'],
];
但是我如何将此验证规则用于对象数组?
return [
'array.*.property_a' => ['required_without:???.property_b'],
'array.*.property_b' => ['required_without:???.property_a'],
];
required_without 的文档不要明确说明我的用例。
有解决方法吗?
在验证数组中,键和值都适用,因此您甚至可以在规则中使用 *
。
所以试试这个:
return [
'array.*.property_a' => ['required_without:array.*.property_b'],
'array.*.property_b' => ['required_without:array.*.property_a'],
];
参考:https://laravel.com/docs/6.x/validation#validating-arrays
假设我有一个由 property_a
和 property_b
组成的对象,提交时必须至少接收这两个属性之一。
如果对象只是一个,我可以使用 required_without
验证规则如下
return [
'property_a' => ['required_without:property_b'],
'property_b' => ['required_without:property_a'],
];
如果我的对象本身在另一个对象中,使用点分符号会很容易:
return [
'parent_object.property_a' => ['required_without:parent_object.property_b'],
'parent_object.property_b' => ['required_without:parent_object.property_a'],
];
但是我如何将此验证规则用于对象数组?
return [
'array.*.property_a' => ['required_without:???.property_b'],
'array.*.property_b' => ['required_without:???.property_a'],
];
required_without 的文档不要明确说明我的用例。
有解决方法吗?
在验证数组中,键和值都适用,因此您甚至可以在规则中使用 *
。
所以试试这个:
return [
'array.*.property_a' => ['required_without:array.*.property_b'],
'array.*.property_b' => ['required_without:array.*.property_a'],
];
参考:https://laravel.com/docs/6.x/validation#validating-arrays