在routing.yml中,您可以执行以下操作:
redirect_old_url_to_new:
pattern: /old-pattern
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /new-pattern
permanent: true
Run Code Online (Sandbox Code Playgroud)
这会将网址重定向/old-pattern到/new-pattern.但是,如果我有一个参数,如何在新路径中转换参数,例如:
redirect_old_url_to_new:
pattern: /old-pattern/{page}
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /new-pattern/{page}
permanent: true
Run Code Online (Sandbox Code Playgroud)
这不起作用,将重定向到/new-pattern/{page}字面上,因此将重定向/old-pattern/23到 /new-pattern/{page}.
在我的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"可选?
如果没有提供参数,我怎么能允许/省略?