2012-03-13 97 views
12

我在多語言Symfony2項目中使用樹枝進行模板化。在layout.html.twig在不改變當前頁面的情況下切換語言

有一個語言切換器我希望用戶可以切換語言,而無需通過單擊語言鏈接更改當前頁面。我寫了下面的代碼,它只是靜態頁面的職責。由於語言的聯繫只是通過locale的路線,在額外需要的參數參與的情況下,它顯然拋出異常:route has some missing mandatory parameters

<ul id="lang"> 
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'az'}) }}">AZ</a></li> 
    <li><a href="{{ path(app.request.attributes.get('_route'), {_locale: 'en'}) }}">EN</a></li> 
</ul> 

回答

34

你可以得到.get('_route_params')merge他們你想要的locale的路徑參數:

<ul class="lang-menu"> 
    <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'ca'})) }}">Català</a></li> 
    <li><a href="{{ path(app.request.get('_route'), app.request.get('_route_params')|merge({'_locale': 'en'}))}}">English</a></li> 
</ul> 
+1

工程就像一個魅力! – Zagloo 2014-12-08 10:19:19

+0

我知道我們不應該對此一見鍾情,但是......我愛你! – 2015-05-10 14:31:21

+0

非常感謝,這使我的一天 – 2016-02-04 03:06:48

相關問題