【发布时间】:2015-01-07 08:34:56
【问题描述】:
我正在尝试使用代表当前语言环境的子域来设置路由系统。路由是通过@Routing 注解设置的,如下所示:
/**
* @Route(
* "/",
* name="homepage",
* host="{locale}.{domain}",
* defaults={"locale" = "en", "domain" = "%domain%"},
* requirements={"locale" = "en|de|fr", "domain" = "%domain%"}
* )
*/
适用于 en.somedomain.com 或 de.somedomain.com 之类的 URL,但无法找到 somedomain.com 的正确路径,没有语言环境。
我知道由于 host 参数,它被设置为代表确切的 locale.domain 模式,但我找不到方法告诉 Symfony 路由系统可能有额外的,默认host。
四处寻找这个,但没有发现什么特别的。非常感谢任何帮助!
更新
其实有一种方法可以做到,在注解中再加一个@Route,不带host参数:
/**
* @Route(
* "/",
* name="homepage_default",
* defaults={"locale" = "en"}
* )
*/
但这看起来有点脏,我没有在那里使用%domain% 参数,这对我来说很重要 - 比如说,如果我需要另一个移动版本的子域。
【问题讨论】:
标签: php routing annotations locale symfony