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 12/10/2011, 17h10   #1
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 2
Points : 2
Par défaut Problème avec sfValidatorDate

Bonjour,

J'ai un formulaire dans lequel un utilisateur peut renseigner une date de sortie, le jour et le mois sont optionnels mais l'année est obligatoire.

Voici le code qui génère les trois listes déroulantes permettant de sélectionner la date

Code :
1
2
3
4
5
6
7
 
    $years = range(date('Y'), date('Y')-50);
    $this->widgetSchema['released_in'] = new sfWidgetFormI18nDate(array(
      'years' => array_combine($years, $years), 
      'culture' => 'fr', 
      'month_format' => 'short_name'
    ));
La ou ça coince c'est au niveau de la validation :

Code :
1
2
3
4
 
    $this->validatorSchema['released_in'] = new sfValidatorDate(array(
      'date_format' => '~(?P\d{0,2})/(?P\d{0,2})/(?P\d{4})~'
    ));
Si je renseigne tous les champs c'est OK, mais si je met que l'année il considère la date comme étant invalide. J'ai beau chercher je n'arrive pas à trouver la solution, pourtant d'après ce que j'ai lu ici il doit être possible d'avoir uniquement l'année dans l'array


Alors voilà je suis bloqué la dessus depuis toute une journée, j'avoue qu'un petit coup de pouce ferait plaisir !
mika87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 10h16   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Un widget n'a rien d'une entité fermée et inamovible.

Il est parfaitement possible d'adapter un validateur et d'en créer un spécifique.

Crées un validateur à partir du sfWidgetFormI18nDate (par héritage) et modifie la méthode doClean pour qu'elle corresponde à tes besoins.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/10/2011, 11h57   #3
Invité de passage
 
Homme
Inscription : septembre 2011
Messages : 15
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2011
Messages : 15
Points : 2
Points : 2
Ok merci je pense que c'est ce que je vais finir par faire. C'est juste que je voulais m'éviter d'avoir à créer un validateur personnalisé si le format de date que je veux est déjà pris en charge par le sfValidatorDate. Manifestement, cela n'a pas l'air d'être le cas !

Allez au boulot...
mika87 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2011, 13h52   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Dans certains cas, la méthode qui semble la plus compliquée est en fait la plus simple.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h47.


 
 
 
 
Partenaires

Hébergement Web