【发布时间】:2016-04-28 08:18:42
【问题描述】:
我希望以下网址提供适当的操作:
- / - indexAction
- /fr - indexAction
- /foo - detailsAction (slug = foo)
- /fr/foo - detailsAction (slug = foo)
我添加了以下操作方法:
/**
* @Route("/{_locale}", name="home", defaults={"_locale": ""}, requirements={"_locale": "fr|es"})
*/
public function indexAction() {
...
}
/**
* @Route("/{_locale}/{slug}", name="details", defaults={"_locale": ""}, requirements={"_locale": "fr|es"})
*/
public function detailsAction($slug) {
...
}
如果我转到 /、/fr 和 /fr/foo,这可以正常工作。但是,当我转到 /foo 时,它找不到匹配的路线。如果有人能告诉我如何做到这一点,我将不胜感激。
请注意,理想情况下,我希望无需为特定操作方法添加多个 @Route 注释即可实现此目的。这样,无论我是否传递 _locale 参数,我都可以使用 UrlGenerator 并指向相同的名称来生成本地化和非本地化路由。
【问题讨论】:
-
您是否厌倦了使用github.com/schmittjoh/JMSI18nRoutingBundle?这似乎完全符合您的需要。
-
谢谢,但我使用的是我自己的框架并且只使用了某些 Symfony 组件。我会看看他们是如何做的事情来尝试和得到一个想法。