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 :

affichage d'erreur de validation d'un formulaire Symfony2.1


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Par défaut affichage d'erreur de validation d'un formulaire Symfony2.1
    bonjour,
    j'ai un probleme dans mon formulaire : les ereurs de validations ne saffichent pas à coté des elements correspondants meme si je les ai mis a coté
    voila mon formulaire :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    {% extends "gestionConferenceApplicationBundle::layout.html.twig" %}
    {% block content %}
    <div id="welcome">
        <div class="content">
     
            <form action="" method="post" {{ form_enctype(form) }}>
                    {{ form_errors(form) }}
     
                    <table>
                        <tr>
                            <td>{{ form_label(form.titre, 'Titre : ') }}</td>                        
                            <td>{{ form_widget(form.titre) }}</td>
                            <td>{{ form_errors(form.titre) }}</td>
                        </tr>
                        <tr>
                            <td>{{ form_label(form.ville, 'Ville : ') }}</td>
     
                            <td>{{ form_widget(form.ville) }}</td>
                            <td>{{ form_errors(form.ville) }}</td>
                        </tr>
                        <tr>
                            <td>{{ form_label(form.lieu, 'Lieu : ') }}</td>
     
                            <td>{{ form_widget(form.lieu) }}</td>
                            <td>{{ form_errors(form.lieu) }}</td>
                        </tr>
                        <tr>
                            <td>{{ form_label(form.date_debut, 'Date de début : ') }}</td>
     
                            <td>{{ form_widget(form.date_debut) }}</td>
                            <td>{{ form_errors(form.date_debut) }}</td>
                        </tr>
                        <tr>
                            <td>{{ form_label(form.date_fin, 'Date de fin : ') }}</td>
     
                            <td>{{ form_widget(form.date_fin) }}</td>
                            <td>{{ form_errors(form.date_fin) }}</td>
                        </tr>
                        <tr>
                            <td>{{ form_label(form.nbMin, 'Nombre minimal de participants : ') }}</td>                        
                            <td>{{ form_widget(form.nbMin) }}</td>
                            <td>{{ form_errors(form.nbMin) }}</td>
                        </tr>
                       <tr>
                            <td>{{ form_label(form.nbMax, 'Nombre maximal de participants : ') }}</td>                        
                            <td>{{ form_widget(form.nbMax) }}</td>
                            <td>{{ form_errors(form.nbMax) }}</td>
                        </tr>
     
                        <tr>
                            <td>{{ form_label(form.dateLimiteInscription, 'Date limite d inscription : ') }}</td>                        
                            <td>{{ form_widget(form.dateLimiteInscription) }}</td>
                            <td>{{ form_errors(form.dateLimiteInscription) }}</td>
                        </tr>
                        {{ form_rest(form) }}
                        <tr>
                            <td align="center" colspan=3 >
                                <input type="submit" style="width: 80px;height: 30px;margin-right: 25px;" value="valider" />
                                <input type="reset" style="width: 80px;height: 30px;" value="initialiser" />
                            </td>                        
                        </tr>
     
     
     
     
                    </table>
                </form>
            </div>
     
        </div>
     
    {% endblock %}
    et voila le champ de validation dont je parle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /**
         * @var integer $nbmax
         *@Assert\Min(limit = "10", message = "veuillez saisir plus que 10")
         * @ORM\Column(name="nbMax", type="integer", nullable=false)
         */
        private $nbmax;
    l'erreur de validation s'affiche en haut de page

    quelqu'un saurait il comment resoudre ce probleme

    merci bien

  2. #2
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Par défaut
    supprime {{ form_errors(form) }} pour voir ?

    Peux tu mettre l'action qui valide le formulaire aussi svp

  3. #3
    Membre très actif
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Par défaut
    lorsque je la supprime rien ne s'affiche la page se charge une autre fois et cayé

    voila la function associé dans le controlleur :
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    public function creerConferenceAction($id = null) {
     
            $message = '';
            if (isset($id)) {
                $conference = $this->getDoctrine()
                        ->getRepository('gestionConferenceApplicationBundle:Conference')
                        ->find($id);
                if (!$conference) {
                    throw $this->createNotFoundException('No conference found for id ' . $id);
                }
            }else{
                $conference = new Conference();            
            }
     
                $form = $this->createFormBuilder($conference)
                    ->add('titre', 'text')
                    ->add('ville', 'text')
                    ->add('lieu', 'text')
                    ->add('date_debut', 'date', array(
                        'widget' => 'single_text',
                        'format' => 'yyyy-MM-dd',
                        ))
                     ->add('date_fin', 'date')
                    ->add('nbMin', 'integer')
                    ->add('nbMax', 'integer')
                    ->add('dateLimiteInscription', 'date')
                    ->getForm();
     
     
            $request = $this->getRequest();
            if ($request->isMethod('POST')) {
                $form->bind($request);
                if ($form->isValid()) {
                    $em = $this->getDoctrine()->getManager();
                    $em->persist($conference);
                    $em->flush();
                    return $this->redirect($this->generateUrl('_acceuil'));
                }
            }
     
            return $this->render('gestionConferenceApplicationBundle:acceuil:creerConference.html.twig', array(
                        'form' => $form->createView(), 
                    ));
        }

  4. #4
    Membre émérite
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2011
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2011
    Messages : 477
    Par défaut
    De mon point de vue, tout à l'air correct pourtant.

    As tu essaye juste de rendre le formulaire avec le helper {{ form_widget(form) }} et rien d'autre

    Voir si les erreurs s'affichent correctement

  5. #5
    Membre très actif
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Par défaut
    je viens de tester avec le helper :
    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
    24
    25
    26
    27
    28
    {% extends "gestionConferenceApplicationBundle::layout.html.twig" %}
    {% block content %}
    <div id="welcome">
        <div class="content">
     
            <form action="" method="post" {{ form_enctype(form) }}>
                   {{ form_widget(form) }}
     
                    <table>
     
                        {{ form_rest(form) }}
                        <tr>
                            <td align="center" colspan=3 >
                                <input type="submit" style="width: 80px;height: 30px;margin-right: 25px;" value="valider" />
                                <input type="reset" style="width: 80px;height: 30px;" value="initialiser" />
                            </td>                        
                        </tr>
     
     
     
     
                    </table>
                </form>
            </div>
     
        </div>
     
    {% endblock %}
    dans ce cas il m'affiche l'erreur en haut

  6. #6
    Membre très actif
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Juillet 2011
    Messages : 175
    Par défaut
    je viens de trouver l'erreur : je n'ai pas bien copier le nom du champ a partir de l'entité :
    j'aurai du ecrire nbmin aulieu de nbMin ...

    mais maintenant au lieu d'ajouter les annotations @assert dont je n'ai pas trouvé de details dans la doc de symfony

    j'aimerai ajouter un fichier de validation
    comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    # src/gestionConference/ApplicationBundle/Resources/config/validation.yml
    gestionConference\ApplicationBundle\Entity\Conference:
      properties:
        nbmin:
          - Range:
              min: 120
              minMessage: You must be at least 120cm tall to enter
    mais malgré que je l'ai ajouté il est tout a fait ignoré par l'application

Discussions similaires

  1. Gérer les erreurs de validation d'un formulaire
    Par laloune dans le forum Langage
    Réponses: 6
    Dernier message: 04/12/2013, 09h32
  2. Réponses: 8
    Dernier message: 22/04/2011, 21h27
  3. Réponses: 3
    Dernier message: 19/09/2007, 17h11
  4. Réponses: 10
    Dernier message: 04/09/2007, 13h38
  5. [Struts Validator] probleme affichage des erreurs
    Par Morpheus2144 dans le forum Struts 1
    Réponses: 7
    Dernier message: 24/01/2006, 15h25

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