Проверка Laravel необходимо заполнить одно из двух полей



У меня есть два поля:



QQ



Электронная почта



Как настроить объект валидатора так, чтобы одно из этих полей было заполнено? Не имеет значения, кто именно.





    $messages = array(
'email.required_without:qq' => Lang::get('messages.mustenteremail'),
'email.email' => Lang::get('messages.emailinvalid'),
'qq.required_without:email' => Lang::get('messages.mustenterqq'),
);
723   2  

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'
);

Если у вас есть оба правила, то заполнение ни одного из них не приведет к отображению двух сообщений об ошибках. Таким образом, он будет проверять, что по крайней мере одно поле заполнено, и будет отображать только одно сообщение об ошибке, если ни одно из них не заполнено.

Comments

    Ничего не найдено.