Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je cherche à utiliser le validateur 'EmailAddress' de la manière la plus simple possible, juste vérifier que le format saisi est correct.
Je ne cherche pas à rendre obligatoire la saisie de ce champ, mais le validateur ne me laisse pas le choix.
Voici le bout de code qui concerne mon problème :
$filters = array(
'util_prenom' => array(
'StringTrim',
'StripTags'
),
'util_mail' => array(
'StringTrim',
'StripTags'
);
$validators = array(
'util_prenom' => array(
'NotEmpty',
'messages' => "Le prénom est obligatoire"
),
'util_mail' => array(
'EmailAddress',
'messages' => "Il y a une erreur dans l'adresse mail"
);
$_CLEAN = new Zend_Filter_Input($filters, $validators, $this->getRequest()->getPost());Le problème, c'est que quand je valide tout à vide, voilà ce que j'obtiens :
array
'util_prenom' =>
array
'isEmpty' => string 'Le prénom est obligatoire' (length=26)
'util_mail' =>
array
'isEmpty' => string 'Le prénom est obligatoire' (length=26)Etrange non ?
Sachant que si je met une adresse valide, ca passe et si je mets n'importe quoi ca me retourne le message "Il y a une erreur dans l'adresse email". Ce n'est que le cas vide qui me pose problème.
Une idée ?
Merci
Hors ligne
Bonjour,
Je m'auto-réponds. Tout est dans la doc qui détail le fonctionnement de Zend_Filter_Input ...
En gros, dès qu'un champs est présent dans le tableau $validators, il est considéré comme obligatoire, il faut le rendre non obligatoire explicitement en rajoutant le lavidateur allowEmpty à true.
Voici mon exemple de ma question corrigé :
$validators = array(
'util_prenom' => array(
'NotEmpty',
'messages' => "Le prénom est obligatoire"
),
'util_mail' => array(
'EmailAddress',
'allowEmpty' => true,
'messages' => "Il y a une erreur dans l'adresse mail"
);Hors ligne