Несколько «required_if» для разных полей в правиле Laravel Validator - PullRequest
0 голосов
/ 25 мая 2018

Я создаю некоторые правила для своих полей сообщений, но мне нужно добавить 2 "required_if" из различных полей в одном правиле, например, если это было "И" или "&&", но изразличные поля.

$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',
]);

(Это не дубликат этого вопроса ).

1 Ответ

0 голосов
/ 29 мая 2018

Благодаря пользователю laracasts https://laracasts.com/@Cronix Мне удалось найти решение, и я надеюсь, что оно может помочь многим другим пользователям, поскольку оно помогло мне.

//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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...