Laravel-validatie een van de twee velden moet worden ingevuld

Ik heb twee velden:

QQ

E-mail

Hoe stel ik een Validator-object in zodat een van deze velden moet worden ingevuld? Het maakt niet uit welke.


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

Antwoord 1, autoriteit 100%

required_withoutzou moeten werken.

Het betekent dat het veld verplicht is als het andere veld niet aanwezig is. Als er meer dan twee velden zijn en er is er maar één vereist, gebruik dan required_without_all:foo,bar,...

$rules = array(
    'Email' => 'required_without:QQ',
    'QQ' => 'required_without:Email',
);

Antwoord 2, autoriteit 19%

In het bovenstaande voorbeeld (gegeven door lucasgeiter) heb je eigenlijk maar één van de voorwaarden nodig, niet beide.

$rules = array(
    'Email' => 'required_without:QQ'
);

Als je beide regels hebt, zal het invullen van geen van beide resulteren in TWEE foutmeldingen. Op deze manier controleert het of er ten minste één veld is ingevuld en geeft het slechts één foutmelding weer als geen van beide is ingevuld.

Other episodes