Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/11/2011, 16h36   #1
Membre à l'essai
 
Homme Jonathan
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Homme Jonathan
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 20
Points : 20
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 :
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?
jotatan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 16h43   #2
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 574
Points : 688
Points : 688
Envoyer un message via MSN à kenny.kev
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 ?
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/11/2011, 16h50   #3
Membre à l'essai
 
Homme Jonathan
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Homme Jonathan
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 20
Points : 20
Il est inclu avec include_partial a la fin de ce premier code:

Code :
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 :
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
jotatan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 17h14   #4
Membre chevronné
 
Avatar de kenny.kev
 
Homme
Inscription : janvier 2007
Messages : 574
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Indre et Loire (Centre)

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

Informations forums :
Inscription : janvier 2007
Messages : 574
Points : 688
Points : 688
Envoyer un message via MSN à kenny.kev
à la place de met un
kenny.kev est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 17h22   #5
Membre à l'essai
 
Homme Jonathan
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Homme Jonathan
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 20
Points : 20
ça ne fonctionne toujours pas avec
jotatan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/11/2011, 12h27   #6
Membre à l'essai
 
Homme Jonathan
Inscription : décembre 2010
Messages : 41
Détails du profil
Informations personnelles :
Nom : Homme Jonathan
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : décembre 2010
Messages : 41
Points : 20
Points : 20
ça y est. En fait il faut mettre dans l'action après l'appel de processForm:
Code :
1
2
 
    $this->setTemplate('gestion');
au lieu de:
Code :
1
2
 
$this->forward('calendrier', 'gestion');
Pour recharger le même formulaire et afficher les erreurs.
jotatan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h46.


 
 
 
 
Partenaires

Hébergement Web