开发者

Symfony2 - Routing with query in routing.yml

开发者 https://www.devze.com 2023-03-28 04:13 出处:网络
I wish to enable variables to be added to the URL for a route in Symfony2 ie. www.mysymfonyproject.com/blog/1?style=fresh&rpp=5

I wish to enable variables to be added to the URL for a route in Symfony2 ie.

www.mysymfonyproject.com/blog/1?style=fresh&rpp=5 

The documentation talks about generating urls with query, but from what I understand this is for dynamic content in the app?:

$router->generate('blog', array('page' => 2, 'category' => 'Symfony'));
// /blog/2?category=开发者_Python百科Symfony

What I would like would be this:

_blogList:
pattern: /blog/{page}?{query}
defaults: { _controller: TestBundle:Blog:view ,page:1, query: NULL } 

But obviously that doesn't work.

Can this be done using YAML? Or do I need to switch my config.yml to PHP?

Thanks.


You can access all the query parameters (the parameters that isn't part of the actual route pattern) by doing:

$this->getRequest()->query->get('parameter_name')

inside the action of your controller that matches the route.

I have some vague memory of there being some shortcut for this (like $this->getParameter() or $this->getQuery()), but I'm not sure since I couldn't find it documented anywhere.


Can you try this route (it should work) :

blog:
    pattern: /blog/{page}
    defaults: { _controller: TestBundle:Blog:view ,page:1, style:fresh, rpp:5 } 


Then to generate an url like /blog/1?style=fresh&rpp=5, use:

$router->generate('blog', array('page' => 1, 'style' => 'fresh', 'rpp' => 5));

or

$router->generate('blog', array('page' => 1));
0

精彩评论

暂无评论...
验证码 换一张
取 消