如何在symfony2 URL中添加查询字符串?

时间:2013-12-02 07:33:35

标签: symfony routing

我希望得到这样的网址 -

http://www.mehedi.com/name/random/?key=mehedi&count=5&page=1

为此,我写了这样的路线 -

name_random_list:
    path:     /name/random/
    defaults: { _controller: NameListBundle:Name:random}
    methods: [GET]

这个URL可以正常使用我当前的路由,但我希望获得相同的URL,但使用symfony默认路由验证。请在下面按代码描述更多内容 -

name_random_list:
        path:     /name/random/{key}/{count}/{page}
        defaults: { _controller: NameListBundle:Name:random}
        methods: [GET]
        requirements:
          count: \d+
          page: \d+

这样填充 -

 http://www.mehedi.com/name/random/mehedi/10/1  // in here key=mehedi, count=10,page=1

但我想这样 -

http://www.mehedi.com/name/random/?key=mehedi&count=5&page=1

默认验证symfony。

3 个答案:

答案 0 :(得分:0)

  

默认验证symfony。

不,我认为这是不可能的。您将不得不编写自己的验证...使用Filters

非常容易

答案 1 :(得分:0)

你能做这样的事吗?我现在无法测试,但值得一试。

name_random_list:
    path:     /name/random/{questionmark}key={key}
    requirements:
         questionmark = [?]

否则,我认为你最好在控制器中处理这类事情。或者编写自己的ControllerResolverInterface实现(参见this link)。但我不认为这是一个非常好的主意,除非你知道你在做什么:P

答案 2 :(得分:0)

您可以这样做:

name_random_list: path: /name/random{queryString} defaults: { _controller: NameListBundle:Name:random} methods: [GET] requirements: queryString: \?.+

您现在可以生成以下内容:

http://blablabla.tld/name/random?whatever=wow&wow=blablabla