Проверка Laravel одно из двух полей должно быть заполнено
У меня есть два поля:
электронная почта
Как настроить объект валидатора так, чтобы одно из этих полей должно быть заполнено? Не важно, что именно.
$messages = array(
'email.required_without:qq' => Lang::get('messages.mustenteremail'),
'email.email' => Lang::get('messages.emailinvalid'),
'qq.required_without:email' => Lang::get('messages.mustenterqq'),
);
2 ответов
required_without
должны работать.
Это означает, что поле является обязательным, если в других местах нет. Если имеется более двух полей и требуется только одно, используйте required_without_all:foo,bar,...
$rules = array(
'Email' => 'required_without:QQ',
'QQ' => 'required_without:Email',
);
в приведенном выше примере (заданном lucasgeiter) вам на самом деле нужно только одно из условий, а не оба.
$rules = array(
'Email' => 'required_without:QQ'
);
Если у вас есть оба правила, то заполнение ни одного из них не приведет к отображению двух сообщений об ошибках. Таким образом, он будет проверять, что по крайней мере одно поле заполнено и будет отображать только одно сообщение об ошибке, если не заполнено.