Bonjour,
Dans un formulaire je dispose d'un champ de type date. L'utilisateur doit don saisir une date, mais je souhaiterais que la date par défaut soit la date du jour.
Voici sa déclaration dans le schema.yml :
Et dans la méthode configure du formulaire j'éxecute la ligne suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part debut: {type: date}
Mais lorsque j'affiche le formulaire, le champ reste vide, sans aucune valeur par défaut. Avez-vous une idée du problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->setDefault('debut',date('Y-m-d'));
EDIT: Je viens de remarquer que dans ce formulaire aucun setDefault n'est pris en compte, mais tout le reste fonctionne ( unset, widget... ). Le formulaire est utilisable sinon, juste pas de valeur par défaut possible ( alors que sur un autre formulaire de ma création les setdefault fonctionne )
Voici le formulaire ne fonctionnement pas correctement :
Et voici le formulaire qui fonctionne totalement :
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 <?php class userprocedureFormEdit extends BaseuserprocedureForm { public function configure() { unset( $this['created_at'], $this['updated_at'], $this['expires_at'], $this['is_activated'],$this['fin'],$this['ordonneursuppression'], $this['supprimeur'],$this['ordonnancesuppression'],$this['initiateur'],$this['supprime'] ); $nomtache = $this->getObject()->getTache()->getIntitule(); $estfini = $this->getObject()->getEstfini(); if($nomtache!="Compte Windows"){ unset($this['windows']); } if($nomtache!="PC fixe" && $nomtache!="PC portable"){ unset($this['nommachine']); } $this->setDefault('debut',date('Y-m-d')); $this->setDefault('validateur',2); } }
Merci d'avance.
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 class userprocedureFormNew extends BaseuserprocedureForm { public function configure() { $this->setDefault('commentaire',"test"); unset( $this['created_at'], $this['updated_at'], $this['expires_at'], $this['is_activated'],$this['debut'],$this['fin'],$this['validateur'],$this['ordonneursuppression'], $this['supprimeur'],$this['ordonnancesuppression'],$this['windows'],$this['estfini'],$this['asupprime'],$this['supprime'] ); $this->setWidget('nommachine', new sfWidgetFormInputHidden()); $this->setWidget('initiateur', new sfWidgetFormInputHidden()); $this->setDefault('initiateur',2); } }
Anthony
EDIT2 : J'ai trouvé une solution pour contourner le problème, c'est de faire un setDefault dans le action.class.php concerné, donc en faisant $this->form->setDefault('var,"val") dans la méthode executeEdit. Mais ca n'explique toujours pas pourquoi le SetDefault ne fonctionne pas lorsqu'on l’exécute à partir de la méthode configure du formulaire.
Partager