Symfony2:locale&路由中的子域主机模式

时间:2013-03-28 09:58:35

标签: symfony routing url-routing locale symfony-2.2

我似乎对Symfony2路由中的语言环境和子域模式的某些方面存在误解。

为什么这不起作用?

routing_de:
    host: "dev.de.example.com" 
    resource: "@AcmeDemoBundle/Resources/config/routing_de.yml"
    prefix: /


routing_en:
    host: "dev.en.example.com" 
    resource: "@AcmeDemoBundle/Resources/config/routing_en.yml"
    prefix: /

此外,我想根据子域设置区域设置。我会假设像这样设置默认语言环境:

routing_de:
    host: "dev.{_locale}.example.com" 
    resource: "@AcmeDemoBundle/Resources/config/routing_{_locale}.yml"
    requirements:
         _locale: de|en
    prefix: /

即使我使用subdomain listener described here(并将其调整为Symfony2.2),我也只能在Controller中设置_locale。不知何故,Twig获得了与Controller不同的语言环境

<a href="{{ path('register', {'_locale': app.request.attributes.get('_locale')}) }} ">Register</a> 

将返回en,而

$this->getRequest()->getLocale();

将返回在子域侦听器中设置的默认语言环境。

编辑2013/04/02 我尝试重新实现此解决方案(http://www.ricardclau.com/2011/09/littleweb-a-small-project-in-symfony2-chapter-1-translations/)并针对子域进行调整,但这似乎也不起作用。

0 个答案:

没有答案