Laravel required_without 数组中的验证规则

fud*_*udo 3 arrays required-field validationrules laravel

假设我有一个由property_a和组成的对象property_b,提交时必须至少接收这两个属性之一。
如果对象只是一个,我可以使用required_without如下验证规则

return [
    'property_a' => ['required_without:property_b'],
    'property_b' => ['required_without:property_a'],
];
Run Code Online (Sandbox Code Playgroud)

如果我的对象本身在另一个对象内部,那么使用点分符号会很容易:

return [
    'parent_object.property_a' => ['required_without:parent_object.property_b'],
    'parent_object.property_b' => ['required_without:parent_object.property_a'],
];
Run Code Online (Sandbox Code Playgroud)

但是我如何将这个验证规则与对象数组一起使用?

return [
    'array.*.property_a' => ['required_without:???.property_b'],
    'array.*.property_b' => ['required_without:???.property_a'],
];
Run Code Online (Sandbox Code Playgroud)

required_without的文档没有明确说明我的用例。
有解决方法吗?

Chr*_*oni 6

在验证数组中,它既适用于键也适用于值,因此您*甚至可以在规则中使用。

所以试试这个:

return [
    'array.*.property_a' => ['required_without:array.*.property_b'],
    'array.*.property_b' => ['required_without:array.*.property_a'],
];
Run Code Online (Sandbox Code Playgroud)

参考: https: //laravel.com/docs/6.x/validation#validating-arrays