我希望将变量添加到Symfony2中的路由的URL中,即
www.mysymfonyproject.com/blog/1?style=fresh&rpp=5
文档讨论了如何使用查询生成网址,但据我所知,这是针对应用中的动态内容?:
$router->generate('blog', array('page' => 2, 'category' => 'Symfony'));
// /blog/2?category=Symfony
我想要的是:
_blogList:
pattern: /blog/{page}?{query}
defaults: { _controller: TestBundle:Blog:view ,page:1, query: NULL }
但显然这不起作用。
可以使用YAML完成吗?或者我需要将config.yml切换到PHP?
感谢。
答案 0 :(得分:3)
您可以通过执行以下操作来访问所有查询参数(不属于实际路由模式的参数):
$this->getRequest()->query->get('parameter_name')
在你的控制器的行动中匹配路线。
我有一些模糊的记忆,有一些快捷方式(如$ this-> getParameter()或$ this-> getQuery()),但我不确定,因为我找不到记录任何地方。
答案 1 :(得分:1)
你可以尝试这条路线(它应该有效):
blog:
pattern: /blog/{page}
defaults: { _controller: TestBundle:Blog:view ,page:1, style:fresh, rpp:5 }
<小时/> 然后要生成类似
/blog/1?style=fresh&rpp=5
的网址,请使用:
$router->generate('blog', array('page' => 1, 'style' => 'fresh', 'rpp' => 5));
或
$router->generate('blog', array('page' => 1));