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()方法是一个更好的选择,因为在表单框架对数据进行转换之后,它会返回数据(通常是对象)。
当您要访问表单令牌时,必须使用问题的答案,
$postData = $request->request->get('contact');
因为getData()
从数组中删除了元素
Symfony 2.3
从2.3开始,您应该使用handleRequest
而不是bindRequest
:
$form->handleRequest($request);
请参阅文件