$ request-> getParameter with array - Symfony

Gry*_*hea 11 php symfony1

如果我有:

$_POST['test']
Run Code Online (Sandbox Code Playgroud)

然后我可以使用:

$request->getParameter('test');
Run Code Online (Sandbox Code Playgroud)

但如果我有这个怎么$_POST['test']['two']办?

Ale*_*tau 15

现在只有一种方法:

$arr = $request->getParameter('test');
$two = $arr['two'];
Run Code Online (Sandbox Code Playgroud)

编辑:

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


小智 9

Symfony 6.0版本,正确答案是

$request->request->all('test')['two'];
Run Code Online (Sandbox Code Playgroud)

当您在 GET 调用中请求数组时:

$request->query->all('test')['two'];
Run Code Online (Sandbox Code Playgroud)


And*_*wis 6

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

$request->get("test[two]", null, true)
Run Code Online (Sandbox Code Playgroud)

第三个参数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中删除."