Symfony 2.2
cette solution est obsolète depuis 2.3 et sera supprimée en 3.0, voir documentation
$form->getData();
vous donne un tableau pour les paramètres du formulaire
à partir de la page 162 du livre symfony2 (Chapitre 12: Formulaires)
[...] parfois, vous voudrez peut-être simplement utiliser un formulaire sans classe et récupérer un tableau des données soumises. C'est en fait très simple:
public function contactAction(Request $request) {
$defaultData = array('message' => 'Type your message here');
$form = $this->createFormBuilder($defaultData)
->add('name', 'text')
->add('email', 'email')
->add('message', 'textarea')
->getForm();
if ($request->getMethod() == 'POST') {
$form->bindRequest($request);
// data is an array with "name", "email", and "message" keys
$data = $form->getData();
}
// ... render the form
}
Vous pouvez également accéder aux valeurs POST (dans ce cas "nom") directement via l'objet de requête, comme ceci:
$this->get('request')->request->get('name');
Sachez cependant que dans la plupart des cas, l'utilisation de la méthode getData () est un meilleur choix, car elle renvoie les données (généralement un objet) après avoir été transformées par le framework de formulaire.
Lorsque vous souhaitez accéder au jeton de formulaire, vous devez utiliser la réponse de Problematic
$postData = $request->request->get('contact');
car le getData()
supprime l'élément du tableau
Symfony 2.3
depuis 2.3, vous devriez utiliser à la handleRequest
place de bindRequest
:
$form->handleRequest($request);
voir la documentation