【发布时间】:2014-03-31 02:53:53
【问题描述】:
我有一个使用 createFormBuilder() 方法构建的标准登录表单。当我尝试 获取输入
$this->get('request')->request->get('userName');
我得到 NULL 因为 $this->get('request')->request 是一个 ParameterBag 对象,它只有 'form' 字段和输入值。所以当我这样做时......
$this->get('request')->request->get('form')
我得到了想要的结果,但在一个数组中
array(
'userName' => 'Dude',
'password' => 'password'
);
这很好,但有没有更直观的获取 POST 数据的方法?
我找到了这个StackOverflow answer,但没有帮助。
我也尝试将 Request 对象作为控制器方法中的参数,但没有结果。
【问题讨论】:
-
这怎么“不直观”?您现在知道
request包含POST数据。你想达到什么目的? -
我在 3 天前开始使用 sympfony2,我记得我可以使用 $request->get('userName') 获取数据。我知道在 symfony 中没有一种方法可以做某事,所以我认为还有另一种方法可以做到这一点。
-
如果您想直接从请求对象中获取
userName,您可以使用$request->request->get('form[userName]', null, true)或$request->get('form[userName]', null, true)。调用Request::get将查看$request->query,然后是$request->attributes,然后是$request->request -
我试过这个功能,但我没有看到 $default 参数。感谢您的帮助。
-
$form->bind($request); $data = $form->getData(); echo $data['userName']?