sva*_*ssr 14 url routing symfony
symfony2是否可以使用正则表达式为单个Controller Action定义多个url模式,因此我们不必定义多个规则?提前致谢
小智 32
使用注释时,您可以定义多个路径.像那样:
/**
* @Route ("item1")
* @Route ("item/2")
* @Method("GET")
*/
public function itemAction() {
}
Run Code Online (Sandbox Code Playgroud)
我正在使用2.0.9版
ila*_*nco 15
你的意思是占位符有要求吗?
blog:
pattern: /blog/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
page: \d+
Run Code Online (Sandbox Code Playgroud)
在这里,您有多个由占位符定义的路由,由通过相同控制器操作的正则表达式验证.
编辑:
url的每个部分都可以是占位符.
blog:
pattern: /{type}/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
type: blog|articles
page: \d+
Run Code Online (Sandbox Code Playgroud)
Jea*_*rat 10
带参数的路由的注释示例:
/**
* @Route("/shops/{page}", name="shops")
* @Route("/shops/town/{town}/{page}", name="shops_town")
* @Route("/shops/department/{department}/{page}", name="shops_department")
*/
public function shopsAction(Town $town = null, Department $department = null, $page = 1)
{ ... }
Run Code Online (Sandbox Code Playgroud)
然后像这样在树枝中生成路线:
{{ path('shops_town') }}
Run Code Online (Sandbox Code Playgroud)
要么
{{ path('shops_town', {'town': town.id}) }}
Run Code Online (Sandbox Code Playgroud)
要么
{{ path('shops_department', {'department': department.id}) }}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28443 次 |
| 最近记录: |