gpt4 book ai didi

symfony - 无法使用 Request 类检索 get 参数

转载 作者:行者123 更新时间:2023-12-02 10:35:03 25 4
gpt4 key购买 nike

我有一个简单的博客包,其路线如下:

blog_post:
pattern: /blog/{year}/{month}/{filename}/
defaults: { _controller: ProjectBlogBundle:Post:index }
requirements:
year: "[0-9]{4}"
month: "[0-9]{2}"
filename: "([^/.]+)"

symfony.local/blog/2012/04/hello-world/ 的 url 匹配没有问题。但是由于某种原因,我无法使用 Request 类访问查询参数,如下所示:

use Symfony\Component\HttpFoundation\Request;

class PostController extends Controller
{
/**
* @Template()
*/
public function indexAction(Request $request)
{


print_r($request->query->keys()); // outputs blank array
print_r($request->request->keys()); // outputs blank array

echo $request->get('filename'); // outputs hello-world

....

}

任何人都可以解释为什么我无法使用 $request->query->get('filename'); 访问查询参数吗?

提前谢谢您。

最佳答案

因为 $request->query 仅包含作为查询字符串传递的参数(仅限 GET 参数),而不包含定义为路由参数的参数(这些参数是从PATH_INFO)

所以,你可以同时使用,

$request->attributes->get('parameterName');
$request->get('parameterName');

访问 url 参数。

事实上,当使用$request->get('XXXX')时,它会检查所有参数包($request->query、$request->request 和 $request->attributes),直到找到符合给定名称的参数包。

关于symfony - 无法使用 Request 类检索 get 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14207505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com