Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php “多重”;必需的“如果”;在Laravel验证器内的不同字段上';s规则_Php_Laravel_Validation - Fatal编程技术网

Php “多重”;必需的“如果”;在Laravel验证器内的不同字段上';s规则

Php “多重”;必需的“如果”;在Laravel验证器内的不同字段上';s规则,php,laravel,validation,Php,Laravel,Validation,我正在为我的帖子字段创建一些规则,但我需要在一个规则中从不同的字段添加2个“required_if”,比如如果是“AND”或“&&”,但来自不同的字段 $validator = $this->validate([ 'form_country' => 'required|array|min:1', 'form_country.*' => 'required|numeric', 'form_tipo'

我正在为我的帖子字段创建一些规则,但我需要在一个规则中从不同的字段添加2个“required_if”,比如如果是“AND”或“&&”,但来自不同的字段

$validator = $this->validate([
    'form_country'          => 'required|array|min:1',
    'form_country.*'        => 'required|numeric',
    'form_tipo'             => 'required|array|min:1',
    'form_tipo.*'           => 'required|numeric|max:10', ,
    'form_fecha_iti_back'   => 'required|array|min:1',
    //so if the actual form_country is 1 AND the actual form_tipo is 3 or 5
    'form_fecha_iti_back.*' => 'required_if:form_country.*,1|required_if:form_tipo.*,3,5',
]);

(它不是的副本)。

感谢laracasts的用户,我设法找到了解决方案,并希望它能像帮助我一样帮助许多其他用户

//so first I create all the common rules within $rules    
$rules = [
    'form_gender' => 'required|array|min:1',
    'form_gender.*' => 'required|string|min:4|max:6',
    // others
];
//then get the requests from the needed fields
$fecha_back = request('form_fecha_iti_back');
$formCountry = request("form_country");
$form_tipo_apoyo = request("form_tipo_apoyo");

//now let's valid if we have any value and produce the custom rules according to the conditions. 
if($fecha_back){
  foreach ($fecha_back as $id => $fecha) {
       if($formCountry[$id] == 1 && $form_tipo_apoyo[$id] == 3 || $form_tipo_apoyo[$id] == 5){
          $rules["form_fecha_iti_back.".$id.""] = "required|date|after:form_fecha_iti_depart.*".$id."";
       } else{
          $rules["form_fecha_iti_back.".$id.""] = "nullable|date|after:form_fecha_iti_depart.".$id."";
       }  
  }
}
//finally we got to validate all the rules
$validator = $this->validate($rules);

您使用的是什么版本的Laravel?我使用的是5.5版本您需要检查验证文档()并查看选项,如
required\u和:foo,bar,
Hi UlyssesMarx我已经尝试过这些选项,但仍然有相同的结果,所以我要确保我理解您的问题,如果
form\u country
数组包含
1
,而
form\u tipo
数组包含
3
5
,那么
form\u fecha\u iti\u back
需要一个值吗?