$ request-> getParameter with array - Symfony

时间:2011-11-01 12:43:21

标签: php symfony1

如果我有:

$_POST['test']

然后我可以使用:

$request->getParameter('test');

但如果我有$_POST['test']['two']

,我怎么能用它呢?

4 个答案:

答案 0 :(得分:12)

现在只有一种方法:

$arr = $request->getParameter('test');
$two = $arr['two'];

编辑:

在PHP 5.4中,你可以$request->getParameter('test')['two'];

答案 1 :(得分:6)

从Symfony 2开始,使用Symfony Request获得数组值的解决方案更加漂亮:

$request->get("test[two]", null, true)

get()的第三个参数$deep默认为false,并决定是否可以访问数组键。

请参阅ParameterBag的文档:

  

boolean $ deep:如果为true,像foo [bar]这样的路径会找到更深层次的项目

http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/ParameterBag.html#method_get

正如antongorodezkiz在他对此答案的评论中所指出的那样,请注意,这个"自版本2.8以来已被弃用,并将在3.0中删除。"

答案 2 :(得分:0)

$request->getParameter('test')['two'];

答案 3 :(得分:0)

有一种简单的方法可以获得整个请求

$var = $request->request->all()

$ var将是一个数组。 http://symfony.com/doc/current/components/http_foundation/introduction.html#accessing-request-data