我有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}
)我在这些链接中出错
路由有一些缺少必需参数
任何人都知道应该如何看待正确的链接?这应该始终有效 - 当没有参数,何时是n
或n + 1
参数。
或许还有另一种方法可以改变语言?
答案 0 :(得分:1)
您可以在app.request.attributes
。
如果你不了解它们:
{{path(app.request.attributes.get('_route'), app.request.attributes.get('_route_params')|merge ({'_locale':'pl' })) }}