带有可选GET参数的symfony2路由

带有可选GET参数的symfony2路由,symfony,routes,Symfony,Routes,我的url必须如下所示: http://example.com/search/1/?cmp_name=&cmp_city=&cmp_category=&cmp_code=&cmp_vat=&cmp_address=&cmp_emp_from=&cmp_emp_till=&cmp_return_from=&cmp_return_till=&search_only_name=1 如何为此url编写路由 我尝试的是: s

我的url必须如下所示:

http://example.com/search/1/?cmp_name=&cmp_city=&cmp_category=&cmp_code=&cmp_vat=&cmp_address=&cmp_emp_from=&cmp_emp_till=&cmp_return_from=&cmp_return_till=&search_only_name=1
如何为此url编写路由

我尝试的是:

search:
    pattern: /search/{page}
    defaults: { _controller: CatalogWebBundle:Default:search }
    options:
        expose: true
但是得到错误:

No route found for "GET /search/1/" (from "http://example.com:8000/")

我的路线怎么了

这里的要点是,由于url末尾有额外的
/
,因此路由定义的模式与url不匹配

这应该匹配

http://example.com/search/1?param1=value1&param2=value2&...
试试这个:

# app/config/routing.yml
search:
    path:      /search/{page}/
    defaults:  { _controller: CatalogWebBundle:Default:search, page: 1 }
    requirements:
        page:  \d+