Bonjour,
Je débute avec symfony et je me vois actuellement confronté à un problème disons... d'"affichage".
Voilà comment j'affiche mes erreurs sur mon formulaire :
Comme vous pouvez le voir, l'erreur associé à un champ donné s'affiche à droite de celui-ci. Donc ça fonctionne bien pour les erreurs associées à un champ donné. Mais lorsque ce sont des erreurs globales, comment peut-on faire ? Ou plus simplement, comment associer un callback à un champ en particulier ?
Voici le code que j'utilise (peut-être pas trop optimisé) pour afficher l'erreur lié à un champ :
Le truc c'est que la vérification de disponibilité d'un pseudo (s'il est déjà utilisé par un autre membre ou pas) se fait avec un CallBack qui soulève une erreur globale (qui fonctionne) mais que je ne peux pas afficher en face de chaque champ.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <li> <?php if ($form["pseudo"]->hasError()): ?> <div class="blocErrorInput"> <label for="membre_pseudo">Nom d'utilisateur</label> <?php echo $form["pseudo"]->render() ?> <div class="blocErrorInputDisp"> <img src='images/design/defaut/icones/forbidden.gif' style='vertical-align:-3px;' /> <i><?php echo $form["pseudo"]->getError(); ?></i> </div> </div> <?php else: ?> <label for="membre_pseudo">Nom d'utilisateur</label> <?php echo $form["pseudo"]->render() ?> <?php endif; ?> </li>
Voici le code utilisé pour afficher l'erreur de "pseudo utilisé" (et email au passage) :
Si vous avez compris mon problème, pourriez-vous m'aider ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $this->validatorSchema->setPostValidator( new sfValidatorAnd ( array( new sfValidatorCallback(array('callback'=> array($this, 'checkLoginAvailability'))), new sfValidatorCallback(array('callback'=> array($this, 'checkEmailAvailability'))) ) ) );
Merci d'avance !
Partager