这有可能与Symfony2中定义多个URL模式使用正则表达式一个控制器动作,所以我们没有办法,制定了规则? 提前致谢
Answer 1:
你的意思是有要求的占位符?
blog:
pattern: /blog/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
page: \d+
这里有一个占位符定义多个路由,通过正则表达式去同一个控制器的动作验证。
编辑:
URL的每个部分可以是一个占位符。
blog:
pattern: /{type}/{page}
defaults: { _controller: AcmeBlogBundle:Blog:index, page: 1 }
requirements:
type: blog|articles
page: \d+
Answer 2:
当使用注解,你可以定义多个路由。 像那样:
/**
* @Route ("item1")
* @Route ("item/2")
* @Method("GET")
*/
public function itemAction() {
}
我使用的是2.0.9版本
Answer 3:
用于与参数路由注解例如:
/**
* @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)
{ ... }
于是产生这样的树枝路线:
{{ path('shops_town') }}
要么
{{ path('shops_town', {'town': town.id}) }}
要么
{{ path('shops_department', {'department': department.id}) }}
文章来源: symfony2 use multiple url pattern for a single Controller Action using regular expression