Symfony 2.2
questa soluzione è deprecata dalla 2.3 e verrà rimossa nella 3.0, vedere la documentazione
$form->getData();
ti dà un array per i parametri del modulo
dalla pagina 162 del libro di symfony2 (Capitolo 12: Forms)
[...] a volte, potresti semplicemente voler usare un modulo senza una classe e recuperare un array dei dati inviati. In realtà è molto semplice:
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
}
Puoi anche accedere ai valori POST (in questo caso "nome") direttamente tramite l'oggetto richiesta, in questo modo:
$this->get('request')->request->get('name');
Tieni presente, tuttavia, che nella maggior parte dei casi l'utilizzo del metodo getData () è una scelta migliore, poiché restituisce i dati (di solito un oggetto) dopo che sono stati trasformati dal framework del modulo.
Quando vuoi accedere al token del modulo, devi usare la risposta di Problematico
$postData = $request->request->get('contact');
perché getData()
rimuove l'elemento dall'array
Symfony 2.3
dalla 2.3 dovresti usare handleRequest
invece di bindRequest
:
$form->handleRequest($request);
vedere la documentazione