Symfony 2.2
to rozwiązanie jest przestarzałe od wersji 2.3 i zostanie usunięte w wersji 3.0, zobacz dokumentację
$form->getData();
daje tablicę dla parametrów formularza
z książki symfony2 strona 162 (Rozdział 12: Formularze)
[...] czasami możesz po prostu użyć formularza bez klasy i odzyskać tablicę przesłanych danych. To jest naprawdę proste:
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 = $form->getData();
}
}
Możesz również uzyskać dostęp do wartości POST (w tym przypadku „name”) bezpośrednio przez obiekt żądania, na przykład:
$this->get('request')->request->get('name');
Należy jednak pamiętać, że w większości przypadków użycie metody getData () jest lepszym wyborem, ponieważ zwraca ona dane (zwykle obiekt) po ich przekształceniu przez framework formularza.
Jeśli chcesz uzyskać dostęp do tokena formularza, musisz użyć odpowiedzi Problematic,
$postData = $request->request->get('contact');
ponieważ getData()
usuwa element z tablicy
Symfony 2.3
od wersji 2.3 powinieneś używać handleRequest
zamiast bindRequest
:
$form->handleRequest($request);
zobacz dokumentację