2

我有这个例子的 Symfony2 文档的基本表单、模板和控制器操作。

每当我尝试在控制器操作中获取表单的参数时,我都必须使用它:

$parameters = $request->request->all();
$name = $parameters["form"]["name"];

但是,在文档中使用这个:

$name = $request->request->get('name');

但这对我来说是错误的,在这种情况下 $name 为 null 并且 Object request(ParameterBag) 包含以下内容:

object(Symfony\Component\HttpFoundation\ParameterBag)#8 (1) {
  ["parameters":protected]=>
  array(1) {
    ["form"]=>
    array(1) {
      ["name"]=>
      string(4) "test"
    }
  }
}
4

1 回答 1

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();
}
于 2012-11-14T13:04:48.507 回答