Bonjour à tous,
Dans la continuité de mes recherches sur Symfony 2, je suis actuellement en pleine étude des formulaires.
La génération fonctionne parfaitement, ainsi que la validation. Cependant il m'est impossible de pré-remplir mon formulaire, à chaque fois que je le fais mes champs ont beau être remplis Symfony me lance des erreurs de validations.
En retirant mes règles "Not Blank", la validation passe mais mon FormContext ne se remplit jamais. Impossible donc d'exploiter les résultats.
N'ayant pas trouvé de méthode simple pour pré-remplir les formulaires, je passe mon objet en paramètre du constructeur de mon formulaire :
Mon Controller :
$form = new UpdateForm('update', $this->get('form.context')->getOptions(), $dev, $states);
J'ai donc modifié le constructeur de mon formulaire de la façon suivante :
Ma classe formulaire :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
public function __construct($title, array $options = array(), Dev $dev, array $states = array()) {
$this->duration = $dev->getDuration();
$this->state = $dev->getStateId();
$this->comment = $dev->getComment();
foreach ( $states as $s ) {
$this->states[$s->getId()] = $s->getName();
}
parent::__construct($title, $options);
}
protected function configure()
{
$this->add(new ChoiceField('state', array(
'choices' => $this->states,
'data' => $this->state
)));
$this->add(new TextField('duration',array(
'data' => $this->duration
)));
$this->add(new TextareaField('comment',array(
'data' => $this->comment
)));
} |
Le formulaire est donc pré-rempli, mais impossible de binder ce qu'il retourne à mon context.
Quelqu'un a une solution ?
Partager