如果存在数组,则需要 Laravel 验证数组元素

Glu*_*ear 3 php validation laravel

Laravel 5.7。我有一个模型的表单请求验证Foo。该模型有一个可选字段bar,它必须是一个数组。如果存在,它必须包含两个键,bingbang。但是如果数组不存在,显然这两个键不应该被验证。

这是我到目前为止:

return [
    'bar'      => 'bail|array|size:2',
    'bar.bing' => 'required|numeric',
    'bar.bang' => 'required|numeric',
];
Run Code Online (Sandbox Code Playgroud)

当我发送bar存在数组的请求时,这有效。但是当我发送没有bar数组的请求时,我仍然收到验证错误

bar.bing 字段是必需的

bar.bang 字段是必需的

我怎样才能让它们只在bar存在时才需要?

Ner*_*rea 5

试试这个规则

return [
    'bar'      => 'nullable|bail|array|size:2',
    'bar.bing' => 'required_with:bar|numeric',
    'bar.bang' => 'required_with:bar|numeric',
]
Run Code Online (Sandbox Code Playgroud)

文档 required_with