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 :

Messages d'erreur du validateur ne s'affichent pas [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut Messages d'erreur du validateur ne s'affichent pas
    Bonjour,
    j'arrive pas à faire afficher les messages d'erreurs du validateurs du formulaire.

    voici le code de ma classe form:
    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
     
    <?php
    class CalendrierForm extends BaseCalendrierForm
    {
      public function configure()
      {
        $this->setWidgets(array(
            'id'              => new sfWidgetFormInputHidden(),
            'id_sfguarduser'  => new sfWidgetFormInputHidden(),
            'id_tache'        => new sfWidgetFormInputHidden(),
            'date_calendrier' => new sfWidgetFormInputText(array(), array(
                                                                        'readonly' => 'readonly',
                                                                        'style' => 'width: 7em;'
                                                                    )
                                                            ),
            'temps_minute'    => new sfWidgetFormInputText(array(), array(
                                                                        'style' => 'text-align:right; width: 50px;'
                                                                    )
                                                            ),
            'type_temps'      => new sfWidgetFormChoice(array(
                                                            'expanded' => true,
                                                            'choices'  => array(
                                                                                'P' => 'Previsionnel',
                                                                                'R' => 'Reel'),
                                                            ))
      	  ));
     
      	$this->setValidators(array(
                'id' => new sfValidatorChoice(
                            array(
                                'choices' => array($this->getObject()->get('id')),
                                'empty_value' => $this->getObject()->get('id'),
                                'required' => false
                                )),
                'id_sfguarduser'  => new sfValidatorString(array('max_length' => 16, 'required' => true)),
                'id_tache'        => new sfValidatorString(array('max_length' => 16, 'required' => true)),
                'date_calendrier' => new sfValidatorString(array('max_length' => 24, 'required' => true)),
                'temps_minute'    => new sfValidatorInteger(
                                                array('max' => 480, 'min' => 5, 'required' => true),
                                                array('max' => '480 minutes maximun', 'min' => '5 minutes minimun')
                                    ),
                'type_temps'      => new sfValidatorString(array('max_length' => 1, 'required' => true)),
        ));
     
            $this->widgetSchema->setLabels(
                    array(
                        'id_sfguarduser' => 'Utilisateur',
                        'id_tache' => 'Tache',
                        'date_calendrier' => 'Date',
                        'temps_minute' => 'Temps',
                        'type_temps' => 'Type temps'
                    )
            );
     
      	$this->widgetSchema->setNameFormat('calendrier[%s]');
     
      	//$this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
     
      }
    }
    Par exemple si je saisir 500 dans le champ "temps_minute" (limité à 480) le message d'erreur ne s'affiche pas.

    Es c'est que quelqu’un à déjà eu un problème similaire?

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Bonsoir,

    C'est dans le template que tu affiches l'erreur pas dans le formulaire.
    Pourrais-tu afficher le template qui contient ce formulaire s'il te plait ?

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    Il est inclu avec include_partial a la fin de ce premier 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <div style="text-align: center"><h2>Gestion du temps</h2></div>
    <br/>
    <div>
        <div>
            <form action="<?php echo url_for('calendrier/recherche') ?>" method="post" id="formRecherche">
              <table>
                <tr>
                  <td><?php echo __('Group'); ?>:</td><td><?php echo $listeUtilGroupe['sfGuardGroup']->render() ?></td>
                  <td><?php echo __('User'); ?>:</td><td><?php echo $listeUtilGroupe['sfGuardUser']->render() ?></td>
                  <td>
                      <label>
                          Date: <?php echo format_date(sfContext::getInstance()->getUser()->getAttribute('rappelDate'), 'dd/MM/yyyy') ?>
                      </label>
                  </td>
                  <td><input type="hidden" value="Rechercher" name="boutonRecherche" id="boutonRecherche"></td>
                  <td><input type="hidden" id="date_calendrier" name="date_calendrier"></td>
                </tr>
              </table>
            </form>
        </div>
        <br>
        <div id="datagridCalendrier">
          <?php echo sfDatagridDoctrine::renderDirect('DatagridCalendrier', 'calendrier', 'DatagridCalendrier') ?>
        </div>
        <div id="datepickerCalendrier">
          <form action="" method="post">
            <div id="plugingDate"></div>
          </form>
        </div>
    </div>
     
    <div id="saisieTemps">
        <?php include_partial('ajoutTemps', array('saisieTemps' => $saisieTemps, 'objetRequeteCalendrier' => $objetRequeteCalendrier)) ?>
    </div>
    Le code de mon partial ajoutTemps est:
    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
     
    <fieldset style="height: auto; width: 85%" >
        <form action="<?php echo url_for('calendrier/'.($saisieTemps->getObject()->isNew() ? 'create' : 'update').(!$saisieTemps->getObject()->isNew() ? '?id='.$saisieTemps->getObject()->getId() : '')) ?>" method="post" <?php $saisieTemps->isMultipart() and print 'enctype="multipart/form-data" ' ?>>
     
            <?php if ($saisieTemps->hasGlobalErrors()): ?>
            <?php foreach ($saisieTemps->getGlobalErrors() as $name => $error): ?>
            <li class='error'><?php echo $error ?></li>
            <?php endforeach; ?>
            <?php endif; ?>
     
            <table>
                <caption><h3>Saisir du temps</h3></caption>
                <thead>
                    <tr>
                        <td colspan="2"><b>Activité: </b>
                            <?php if ( $objetRequeteCalendrier->Tache->Activite->getLibelle() != null): ?>
                                <?php echo $objetRequeteCalendrier->Tache->Activite->getLibelle() ?>
                            <?php endif; ?>
                        </td>
                        <td><b>Tache: </b>
                            <?php if ( $objetRequeteCalendrier->Tache->getLibelle()!= null): ?>
                                <?php echo $objetRequeteCalendrier->Tache->getLibelle() ?>
                            <?php endif; ?>
                        </td>
                    </tr>
                </thead>
              <tr>
                <td><?php echo $saisieTemps['id_sfguarduser']->render() ?></td>
                <td><?php echo $saisieTemps['id_tache']->render() ?></td>
              </tr>          
              <tr>
                <td><?php echo $saisieTemps['type_temps']->renderLabel() ?></td>
                <td><?php echo $saisieTemps['type_temps']->render() ?> </td>
              </tr>
              <tr>
                <td><?php echo $saisieTemps['date_calendrier']->renderLabel() ?></td>
                <td><?php echo $saisieTemps['date_calendrier']->render() ?></td>
              </tr>
              <tr>
                <td><?php echo $saisieTemps['temps_minute']->renderLabel() ?> </td>
                <td><?php echo $saisieTemps['temps_minute']->render() ?>min</td>
     
                <?php if ($saisieTemps['temps_minute']->hasError()): ?>
                <td style="color: red"><?php echo $saisieTemps['temps_minute']->getError(); ?></td>
                <?php endif; ?>
     
                <td><?php echo $saisieTemps['_csrf_token']->render() ?></td>
                <td><input type="submit" value="Enregistrer" /></td>
              </tr>
                  <tr>
                    <td></td>
                    <td></td>
                    <td></td>
                    <td><?php echo $saisieTemps['id_sfguarduser']->renderError() ?></td>
                    <td><?php echo $saisieTemps['id_tache']->renderError() ?></td>
                    <td><?php echo $saisieTemps['type_temps']->renderError() ?></td>
                    <td><?php echo $saisieTemps['temps_minute']->renderError() ?></td>
                    <td><?php echo $saisieTemps['date_calendrier']->renderError() ?></td>
                  </tr>
            </table>
      </form>
    </fieldset>
    Merci

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    ça ne fonctionne toujours pas avec

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    ça y est. En fait il faut mettre dans l'action après l'appel de processForm:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        $this->setTemplate('gestion');
    au lieu de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->forward('calendrier', 'gestion');
    Pour recharger le même formulaire et afficher les erreurs.

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

Discussions similaires

  1. [ZF 1.10] Traduction des messages d'erreur des validateurs ZF
    Par erehcab dans le forum Zend_Form
    Réponses: 2
    Dernier message: 01/12/2010, 15h28
  2. Le message d'erreur du PassREcovery ne s'affiche pas
    Par zooffy dans le forum ASP.NET
    Réponses: 2
    Dernier message: 18/03/2009, 00h47
  3. [DELPHI 7][DLL] Message d'erreur s'il n'y a pas de DLL
    Par Stef.web dans le forum Delphi
    Réponses: 9
    Dernier message: 01/05/2007, 17h55
  4. Réponses: 3
    Dernier message: 22/03/2004, 16h49
  5. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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