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 :

sfWidgetFormTime : impossible de valider le formulaire


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut sfWidgetFormTime : impossible de valider le formulaire
    Bonjour a tous,

    J'ai un formulaire, qui contient deux sfWidgetFormTime, liés en BDD avec deux champs mysql (start_time et end_time).

    Malheureusement impossible de valider le formulaire

    voici l'erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Validation failed in class TypicalSchedule
     
    2 fields had validation errors:
     
    * 1 validator failed on start_time (length)
    * 1 validator failed on end_time (length)
    voila le formulaire en question :

    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
    public function setup()
      {
        $this->setWidgets(array(
          'id'             => new sfWidgetFormInputHidden(),
          'start_time'     => new sfWidgetFormTime(),
          'end_time'       => new sfWidgetFormTime(),
          'typical_day_id' => new sfWidgetFormDoctrineChoice(array('model' => 'TypicalDay', 'add_empty' => true)),
        ));
     
        $this->setValidators(array(
          'id'             => new sfValidatorDoctrineChoice(array('model' => 'TypicalSchedule', 'column' => 'id', 'required' => false)),
          'start_time'     => new sfValidatorTime(),
          'end_time'       => new sfValidatorTime(),
          'typical_day_id' => new sfValidatorDoctrineChoice(array('model' => 'TypicalDay', 'required' => false)),
        ));
     
        $this->widgetSchema->setNameFormat('typical_schedule[%s]');
     
        $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
     
        parent::setup();
      }
    Le seul validateur qui contient un parametre "length" est le validateur sfValidatorString...

    Quelqu'un aurait t'il deja eu le cas ?

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je n'ai jamais utilisé le sfValidatorTime, mais je ne vais pas laisser un Alsacien pédaler dans la choucroute !

    Je me demande juste si le message n'est pas une fausse barbe et ne serait pas plutôt dû à un mauvais format de la saisie de l'heure. Ceci n'est qu'une supposition sans test.

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    Je dirais qu'au niveau de la saisie , je ne vois pas ce qui pourrait clocher...

    Dans mon post j'ai bien un tableau comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ['start_time'] = Array(
      ['hour' ] = 8
      ['minute'] = 15
    )
    idem pour le end_time

    Assez perturbant tout ca...

  4. #4
    Membre confirmé
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2009
    Messages : 64
    Par défaut
    Je viens de retenter la creation de mon module pour enregitrer cet intervalle de temps...

    En clair , je suis passé via l'outil doctrine generate-module, après avoir regénéré ma bdd.

    Résultat identique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Validation failed in class TypicalSchedule
     
    2 fields had validation errors:
     
    * 1 validator failed on start_time (length)
    * 1 validator failed on end_time (length)
    Je m'autorise donc a supposer que le problème vient bien du framework , et non pas de mon code... non ?

    Je vais donc modifier ma base , et stocker cette information au format varchar...

  5. #5
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je vais tester là.

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai, sur une de mes kleenex testé la chose.

    Créé une table avec deux champs de type "time"

    Généré un module avec : frontend Activite Activity --non-verbose-templates --with-show --with-doctrine-route

    Et obtenu le même résultat dans le form que toi.

    Sauf que la saisie de temps ce fait sans aucun problème. Aucun message d'erreur.

    Juste un truc bizarre, j'ai un : $this->setupInheritance(); que tu n'as pas...

    Es-tu sur de ta version de symfony ?

    Peux-tu mettre ton shema.yml ?

    Le shema.yml de ma table de test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Activity:
      columns:
        startTime: time
        endTime: time
        user_id: integer
      relations:
        User:
          foreignAlias: Activitys

Discussions similaires

  1. validation du formulaire de la page ouvrante d'un popup
    Par noa dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/08/2005, 12h11
  2. Réponses: 5
    Dernier message: 24/05/2005, 11h21
  3. Valider un formulaire contenu dans une iframe
    Par snoopy5.0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/04/2005, 11h14
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

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