IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Rassembler les erreurs d'un formulaire [2.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 118
    Points
    118
    Par défaut Rassembler les erreurs d'un formulaire
    Bonjour,

    J'aimerais rassembler toutes les erreurs liées a un formulaire à un seul endroit. Je pensais que form_errors(form) remplissait cette fonction. Apparemment je l'utilise mal :/

    Voici mon code :

    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
    16
    17
    18
    19
    20
    21
    22
    23
     
     
         <div id="register-form-errors" class="alert-message block-message error">
                {{ form_errors(form) }}
        </div>
     
        <div id="register-form"><!-- Required fields -->
            <div class="form-elem">
                {{ form_label(form.username) }}
                {{ form_widget(form.username) }}  
                {{ form_errors(form.username) }}  
            </div>
            <div class="form-elem">
                {{ form_label(form.email) }}
                {{ form_widget(form.email) }}  
                {{ form_errors(form.email) }}  
            </div> 
            <div>
                {{ form_widget(form.plainPassword) }}  
                {{ form_errors(form.plainPassword) }}  
            </div>                       
            {{ form_rest(form) }}
        </div>
    Mes erreurs ne s'affichent donc pas dans mon div (#register-form-errors)

    Merci de votre aide.
    "Rather than love, than monney, than faith, than
    fame, than fairness, give me truth."

  2. #2
    Membre averti

    Inscrit en
    Juin 2008
    Messages
    307
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 307
    Points : 364
    Points
    364
    Par défaut
    Personnellement je procède comme ca :

    -dans le contrôleur au niveau de la méthode render, je transmet la variable : 'hasErrors' => $form->hasErrors())

    -côté template :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      {% if hasErrors == 'true' %}
        <div class="error">
          {{ form_errors(form) }}
          {{ form_errors(form.champ1) }}
          {{ form_errors(form.champ2) }}
           ...
        </div>
      {% endif %}
    Ca marche bien après ya ptet une meilleur facon de faire....

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2004
    Messages
    318
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2004
    Messages : 318
    Points : 362
    Points
    362
    Par défaut
    Le {{ form_errors(form) }} correspond aux erreurs "globales" du formulaire, et non pas toutes les erreurs des champs.

    La solution de bilbot devrait te convenir !

  4. #4
    Membre régulier Avatar de khand
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2008
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2008
    Messages : 120
    Points : 118
    Points
    118
    Par défaut
    Merci c'est ce que je voulais ! Cela dit, ça a soulevé un autre problème que je vais mettre dans un nouveau poste !

    Bonne journée et merci.
    "Rather than love, than monney, than faith, than
    fame, than fairness, give me truth."

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Il est plus aisé de sortir l'erreur du champ vers les erreurs globales en utilisant le paramètre "error_bubbling" dans le builder du formulaire
    ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $builder->add('message', 'textarea', array( 'error_bubbling' => true));

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] Mettre les erreurs d'un formulaire en rouge
    Par ldv dans le forum Symfony
    Réponses: 2
    Dernier message: 26/10/2011, 10h57
  2. Le formulaire n'envoie pas les erreurs
    Par isitien dans le forum jQuery
    Réponses: 21
    Dernier message: 09/03/2011, 13h55
  3. Réponses: 3
    Dernier message: 27/08/2010, 13h58
  4. [1.x] Formulaire mal rempli qui n'affiche pas les erreurs
    Par bahamut100 dans le forum Symfony
    Réponses: 5
    Dernier message: 03/06/2010, 00h21
  5. Erreur de code dans les conditions d'un formulaire
    Par DrDooM dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2007, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo