【发布时间】:2011-12-19 11:31:32
【问题描述】:
如果我有:
$_POST['test']
那我可以用吗:
$request->getParameter('test');
但是如果我有$_POST['test']['two'],我该如何使用它呢?
【问题讨论】:
如果我有:
$_POST['test']
那我可以用吗:
$request->getParameter('test');
但是如果我有$_POST['test']['two'],我该如何使用它呢?
【问题讨论】:
现在只有一种方法可以做到:
$arr = $request->getParameter('test');
$two = $arr['two'];
已编辑:
在 PHP 5.4 中你可以做到这一点$request->getParameter('test')['two'];
【讨论】:
从 Symfony 2 开始,甚至还有一个更漂亮的解决方案可以通过 Symfony 请求获取数组值:
$request->get("test[two]", null, true)
get()的第三个参数$deep默认为false,决定是否可以访问数组键。
查看ParameterBag的文档:
boolean $deep:如果为真,则像 foo[bar] 这样的路径会找到更深的项目
http://api.symfony.com/2.0/Symfony/Component/HttpFoundation/ParameterBag.html#method_get
正如antongorodezkiz 在对此答案的评论中指出的那样,请注意“自 2.8 版以来已弃用,并将在 3.0 版中删除。”
【讨论】:
ParameterBag::get() 中查找深层项目自 2.8 版以来已弃用,并将在 3.0 中删除。” github.com/symfony/symfony/blob/2.8/CHANGELOG-2.8.md
$request->getParameter('test')['two'];
【讨论】:
有一种简单的方法可以获取整个请求
$var = $request->request->all()
$var 将是一个数组。 http://symfony.com/doc/current/components/http_foundation/introduction.html#accessing-request-data
【讨论】: