我为此示例提供了Symfony2文档的基本表单,模板和控制器操作。
每当我尝试在控制器操作中获取表单的参数时,我必须使用它:
$parameters = $request->request->all();
$name = $parameters["form"]["name"];
但是,在文档中使用此:
$name = $request->request->get('name');
但这对我来说是错误的,在这种情况下$ name为null并且Object请求(ParameterBag)包含:
object(Symfony\Component\HttpFoundation\ParameterBag)#8 (1) {
["parameters":protected]=>
array(1) {
["form"]=>
array(1) {
["name"]=>
string(4) "test"
}
}
}
答案 0 :(得分:10)
$formPost = $request->request->get('form');
$name = $formPost['name'];
或者从PHP 5.4开始
$name = $request->request->get('form')['name'];
在我看来,访问提交数据的最佳方法是首先将请求绑定到表单,然后从Form对象访问值:
if ('POST' === $request->getMethod())
{
$form->bindRequest($request); //Symfony 2.0.x
//$form->bind($request); //Symfony 2.1.x
$name = $form->get('name')->getData();
}