required_without不适用于多个字段

Rau*_*pta 5 php laravel laravel-validation laravel-4.2

required_without当我传递多个字段时,Laravel 无法正常工作。

这是我的规则:

$rules = [
    'startDate' => 'date|date_format:m/d/Y|required_without:customerId,purchaseId,orderId',
    'endDate' => 'date|date_format:m/d/Y|required_without:customerId,purchaseId,orderId',
];
Run Code Online (Sandbox Code Playgroud)

我想要的是,当我通过customerIdpurchaseIdorderId不是全部)时,我应该不会出错。但这给了我startDate所需的任何错误。

任何帮助将不胜感激。

小智 5

我相信,您正在寻找的规则是 required_without_all IE。当所有其他指定字段(customerId、purchaseId、orderId)不存在时,startDate 字段必须存在。

根据 https://laravel.com/docs/5.6/validation

required_without_all:foo,bar,... 仅当所有其他指定字段都不存在时,验证字段必须存在且不为空。

相比之下

required_with:foo,bar,... 仅当任何其他指定字段存在时,验证字段必须存在且不为空。