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