使用Symfony2上的不同参数在URL中切换语言环境

时间:2015-10-01 13:51:47

标签: php symfony doctrine-orm twig multilingual

我有3个链接来切换Symfony2中的语言环境。

 <a href="{{ path( app.request.get('_route'), {'_locale': 'pl'}) }}"><img alt="Polski" class="flags" src="{{ asset('bundles/gogscms/images/pol.png') }}"></a>
 <a href="{{ path( app.request.get('_route'), {'_locale': 'en'}) }}"><img alt="English" class="flags" src="{{ asset('bundles/gogscms/images/eng.png') }}"></a>
 <a href="{{ path( app.request.get('_route'), {'_locale': 'it'}) }}"><img alt="Italiano" class="flags" src="{{ asset('bundles/gogscms/images/ita.png') }}"></a>

当我在Controlers中没有任何额外的争论时,一切都很好。例如(模式:/ {_ locale})

public function indexAction(){

...

    }

不幸的是,当我有一些额外的论点时(例如:pattern:/page/{id}/{name}/{_locale})我在这些链接中出错

  

路由有一些缺少必需参数

任何人都知道应该如何看待正确的链接?这应该始终有效 - 当没有参数,何时是nn + 1参数。

或许还有另一种方法可以改变语言?

1 个答案:

答案 0 :(得分:1)

您可以在app.request.attributes

中找到

如果你不了解它们:

{{path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge ({'_locale':'pl' }))  }}