Symfony2中路由的可选前缀

RYN*_*RYN 1 php routing url-routing symfony

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

/
/7
/articles
/articles/
/articles/7
Run Code Online (Sandbox Code Playgroud)

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

Wou*_*r J 5

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

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

acme_article:
    path: /{id}
    requirements:
        id: \d+
    defaults: { id: 5 }
Run Code Online (Sandbox Code Playgroud)

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

acme_article:
    path: /{_prefix}/{id}
    defaults: { _prefix: articles, id: 5 }
    requirements:
        id: \d+
        _prefix: articles
Run Code Online (Sandbox Code Playgroud)

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