Laravel Validator存在或等于/ conditonal或

我有一个输入值,该值可以是数据库中存在的实际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没有提供答案


犯罪嫌疑人X
浏览 192回答 2
2回答

慕田峪9158850

一种可能的解决方案是创建自定义验证规则,该规则将检查所需的值。您可以在此处获取有关此信息的更多信息

肥皂起泡泡

您可以轻松地为该变量编写自己的验证规则。像这样的东西:if (!empty($data->item_id)){&nbsp; &nbsp; if($data->item_id<>0 || $data->item_id <not in list of values>){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return Redirect::back()->withErrors('error messages here')->withInput();&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP