Routing in Symfony2: optional parameter en four urls for one route

青春壹個敷衍的年華 提交于 2019-11-30 21:18:06
Touki

Here's a way to do this

routing.yml

report:
    pattern: /report/{days}
    defaults: { _controller: "AppReportBundle:Report:dayReport", days: null }
    requirements:
        days: -?\d+

report_reroute:
    pattern: /report/
    defaults:
        _controller: FrameworkBundle:Redirect:redirect
        route: report
        permanent: true

Since requirements is a regexp pattern it lets you have a negative number.

The reroute section forces the route /report/ to redirect on /report
You can read about this on: Cookbok Entry - Elnur's Answer

With such behaviour, you would have:

Route       | Action                 | Parameters
------------|------------------------|-------------
/report     | dayReportAction        | $days = null
/report/    | 301 to /report         |
/report/60  | dayReportAction        | $days = 60
/report/-4  | dayReportAction        | $days = -4
/report/foo | 404                    |
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!