Bonsoir à tous !

J'utilise le validateur sfValidatorAnd pour contrôler le champ texte d'un formulaire.
Ce champ correspond au pseudo de l'utilisateur.
Je souhaite donc contrôler : la taille min, max avec un validateur string
et je controle aussi le contenu du texte avec sfValidatorRegex.

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 
 $this->validatorSchema['username'] = new sfValidatorAnd(array(
            new sfValidatorRegex(array('pattern' => '/[a-zA-Z0-9_]+/'),array('invalid'=>'Pseudo : caractères autorisés : [a-zA-Z0-9_] ')),
            new sfValidatorString(array('min_length' => 5),array('min_length'=>'Pseudo : "%value%" est trop court (%min_length% lettres minimum)','required' => 'Pseudo : non renseigné !','invalid'=>'Veuillez vérifier le format du pseudo !'))
 
        ),array('required'=>true),array('required'=>'non renseigné username'));

Le problème est que lorsque je place moins de 5 caractères NON autorisés il m'affiche : "message trop court"
Si j'écris un pseudo correct auquel j'ajoute un caractère interdit ("=" par exemple) il ne m'affiche AUCUN message d'erreur !

Si je ne renseigne pas le champ il m'affiche le message d'erreur du sfValidatorAnd.

Voilà tout pleins d'infos...
J'ai essayé d'intervertir les deux validateurs mais ça ne change rien...

Comment faire en sorte que les bons messages s'affichent ??

Merci d'avance pour votre aide !