我有一个输入值,可以是数据库中存在的实际ID,也可以是表示特殊情况的0。
在任何情况下,如果这个值被发送为非空,我需要用类似的东西进行验证
Validator::make($data, [
'item_id.*' => 'required|in:0[OR]exists:items_table,id',
]);
问题是我没有找到任何关于如何做这个“[OR]
”的文档。我设法找到的几乎所有东西都与测试其他键或仅检查显式数组而没有存在“或”有关。
注意:这不是required_if /的情况,除非因为我需要检查当前测试的值,而不是其他密钥。
注2:本页:https://laravel.com/docs/5.8/validation没有提供答案
其中一种可能的解决方案是创建自定义验证规则,以检查所需的值。您可以获得有关该here的更多信息
您可以轻松地为该变量编写自己的验证规则。像这样的东西:
if (!empty($data->item_id)){
if($data->item_id<>0 || $data->item_id <not in list of values>){
return Redirect::back()->withErrors('error messages here')->withInput();
}
}