2012-03-13 12 views
12

मैं बहुभाषी Symfony2 प्रोजेक्ट में templating के लिए twig का उपयोग करें। Layout.html.twigवर्तमान पृष्ठ को बदलने के बिना भाषा स्विचिंग

में एक भाषा स्विचर है, मैं चाहता हूं कि उपयोगकर्ता भाषा लिंक पर क्लिक करके वर्तमान पृष्ठ को बदले बिना भाषाएं स्विच कर सके। मैंने निम्नलिखित कोड लिखा है जो स्थिर पृष्ठों के लिए कर्तव्य करता है। 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

+0

मुझे पता है कि हमें पहली बार यह नहीं कहना चाहिए लेकिन ... मैं तुमसे प्यार करता हूँ! –

+0

बहुत बहुत धन्यवाद, जिसने मेरा दिन बनाया –

संबंधित मुद्दे