Symfony 2.2
это решение устарело с 2.3 и будет удалено в 3.0, см. Документацию
$form->getData();
предоставляет массив для параметров формы
из symfony2 book стр. 162 (Глава 12: Формы)
[...] иногда вы можете просто захотеть использовать форму без класса и вернуться назадмассив представленных данных.На самом деле это действительно просто:
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
}
Вы также можете получить доступ к значениям POST (в данном случае «name») напрямую через объект запроса, например:
$this->get('request')->request->get('name');
Однако имейте в виду, что в большинстве случаев лучше использовать метод getData (), так как он возвращает данные (обычно объект) после их преобразования каркасом формы.
Когда выесли вы хотите получить доступ к токену формы, вы должны использовать ответ «Проблематично» $postData = $request->request->get('contact');
, поскольку getData()
удаляет элемент из массива
Symfony 2.3
начиная с 2.3, вы должны использовать handleRequest
вместо bindRequest
:
$form->handleRequest($request);
см. Документацию