Pau*_*ean 5 php url routing symfony
在我的Symfony2应用程序中,我想用一条路线制作四个网址:
我的路线目前看起来像这样:
report:
pattern: /report/{days}
defaults: { _controller: "AppReportBundle:Report:dayReport", days = null }
Run Code Online (Sandbox Code Playgroud)
该行动定义为:
public function dayReportAction($days = null)
{
// my code here
}
Run Code Online (Sandbox Code Playgroud)
这当前使url 1和2工作,但在url 3和4的情况下,我收到错误
路线未找到
如何使参数"days"可选?
如果没有提供参数,我怎么能允许/省略?
Tou*_*uki 14
这是一种方法
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
Run Code Online (Sandbox Code Playgroud)
由于需求是正则表达式模式,因此您可以使用负数.
重新路由部分强制路由/report/重定向/report
您可以阅读以下内容:Cookbok Entry-Elnur's Answer
有了这样的行为,你会有:
Route | Action | Parameters
------------|------------------------|-------------
/report | dayReportAction | $days = null
/report/ | 301 to /report |
/report/60 | dayReportAction | $days = 60
/report/-4 | dayReportAction | $days = -4
/report/foo | 404 |
Run Code Online (Sandbox Code Playgroud)