[英]Routing in Symfony2: optional parameter en four urls for one route
在我的Symfony2應用程序中,我想用一條路線制作四個網址:
我的路線目前看起來像這樣:
report:
pattern: /report/{days}
defaults: { _controller: "AppReportBundle:Report:dayReport", days = null }
該行動定義為:
public function dayReportAction($days = null)
{
// my code here
}
這當前使url 1和2工作,但在url 3和4的情況下,我收到錯誤
路線未找到
如何使參數“days”可選?
如果沒有提供參數,我怎么能同時省略/
?
這是一種方法
使用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
由於需求是正則表達式模式,因此您可以使用負數。
重新路由部分強制路由/report/
重定向/report
你可以在上面讀到: Cookbok Entry - Elnur的答案
有了這樣的行為,你會有:
Route | Action | Parameters
------------|------------------------|-------------
/report | dayReportAction | $days = null
/report/ | 301 to /report |
/report/60 | dayReportAction | $days = 60
/report/-4 | dayReportAction | $days = -4
/report/foo | 404 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.