Lors de la création d’un formulaire Symfony, vous savez (ou pas) que l’on peut :
– mettre des valeurs par défaut sur les champs d’un formulaire dans le formulaire en lui-même avec SetDefault().
Exemple : $this->setDefault(’email’, ‘Your Email Here’);
– injecter des valeurs dynamiquement en étendant la méthode save() du formulaire
– injecter des valeurs sur l’objet du formulaire dans l’action avant de sauvegarder le formulaire.
Exemple : $form->getObject()->setEmail(‘Your Email Here’);
Mais si vous avez un validateur (la valeur du champ doit être unique par exemple), celui-ci ne sera pas appliqué si vous procédez de cette façon dans l’action.
Dans ce cas, vous pouvez ajouter vos valeurs dynamiques sur les paramètres de requêtes renvoyés en post/get par le formulaire. Voilà ce que cela peut donner :
if ($request->isMethod('post')) { $form_param = $request->getParameter($this->form->getName()); // inject some form values in request parameter before bind, // so that values will be validated by form $form_param['email'] = $this->email_value; // $this->form->bind($form_param); if ($this->form->isValid()) { $this->form->save(); } }
Poster un Commentaire