J'ai deux domaines:
Comment configurer un objet Validator pour que l'un de ces champs soit rempli? Peu importe lequel.
$messages = array(
'email.required_without:qq' => Lang::get('messages.mustenteremail'),
'email.email' => Lang::get('messages.emailinvalid'),
'qq.required_without:email' => Lang::get('messages.mustenterqq'),
);
required_without
devrait fonctionner.
Cela signifie que le champ est obligatoire si l'autre champ n'est pas présent. Si vous avez plus de deux champs et qu'un seul est requis, utilisez required_without_all:foo,bar,...
$rules = array(
'Email' => 'required_without:QQ',
'QQ' => 'required_without:Email',
);
Dans l'exemple ci-dessus (donné par lucasgeiter), vous n'avez en fait besoin que d'une des conditions, pas des deux.
$rules = array(
'Email' => 'required_without:QQ'
);
Si vous avez les deux règles, le fait de ne remplir aucune des deux entraînera l'affichage de DEUX messages d'erreur. De cette façon, il vérifiera qu'au moins un champ est rempli et n'affichera qu'un seul message d'erreur si aucun n'est rempli.