Symfony 2.2
Diese Lösung ist seit 2.3 veraltet und wird in 3.0 entfernt, siehe Dokumentation
$form->getData();
gibt Ihnen ein Array für die Formularparameter
aus dem symfony2-Buch Seite 162 (Kapitel 12: Formulare)
[...] Manchmal möchten Sie möglicherweise nur ein Formular ohne Klasse verwenden und ein Array der übermittelten Daten zurückerhalten. Das ist eigentlich ganz einfach:
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
}
Sie können auch direkt über das Anforderungsobjekt auf POST-Werte (in diesem Fall "Name") zugreifen, wie folgt:
$this->get('request')->request->get('name');
Beachten Sie jedoch, dass in den meisten Fällen die Verwendung der Methode getData () die bessere Wahl ist, da die Daten (normalerweise ein Objekt) zurückgegeben werden, nachdem sie vom Formularframework transformiert wurden.
Wenn Sie auf das Formular-Token zugreifen möchten, müssen Sie die Antwort von Problematic verwenden,
$postData = $request->request->get('contact');
da getData()
das Element aus dem Array entfernt wird
Symfony 2.3
seit 2.3 solltest du verwenden handleRequest
statt bindRequest
:
$form->handleRequest($request);
siehe Dokumentation