Symfony 2.2
це рішення застаріло з 2.3 і буде видалено в 3.0, див. документацію
$form->getData();
дає вам масив для параметрів форми
зі сторінки книги symfony2 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 (у цьому випадку "ім'я") безпосередньо через об'єкт запиту, наприклад:
$this->get('request')->request->get('name');
Однак майте на увазі, що в більшості випадків використання методу getData () є кращим вибором, оскільки він повертає дані (як правило, об’єкт) після того, як їх було перетворено фреймворком.
Коли ви хочете отримати доступ до маркера форми, вам слід скористатися відповіддю Problematic,
$postData = $request->request->get('contact');
оскільки getData()
вилучає елемент із масиву
Symfony 2.3
з 2.3 ви повинні використовувати handleRequest
замість bindRequest
:
$form->handleRequest($request);
дивіться документацію