Symfony2中路由的可选前缀

时间:2014-01-01 07:21:59

标签: php symfony routing url-routing

我希望这些网址都匹配相同的控制器:

/
/7
/articles
/articles/
/articles/7

是否可以在symfony的路由中添加可选prefix,以便article前缀可选?
怎么样?

1 个答案:

答案 0 :(得分:5)

您可以创建指向同一控制器的2个路由:

acme_article_prefix:
    path: /articles/{id}
    requirements:
        id: \d+
    defaults: { id: 5 }

acme_article:
    path: /{id}
    requirements:
        id: \d+
    defaults: { id: 5 }

另一种选择是使前缀也成为占位符:

acme_article:
    path: /{_prefix}/{id}
    defaults: { _prefix: articles, id: 5 }
    requirements:
        id: \d+
        _prefix: articles
  

对于框架,有一个补丁很长时间来实现像/(articles/){id}这样的路由,它将匹配你在上面设置的urk。