2013-03-16 4 views
7

में मर्ज() का उपयोग करते समय कुंजी मान को 'कुंजी' द्वारा प्रतिस्थापित किया जा रहा है, मैं '_' से शुरू नहीं होने वाले सभी विशेषताओं के लिए अपने वर्तमान मानों के साथ सरणी के मुख्य मान के जोड़े जोड़ने की कोशिश कर रहा हूं। किसी कारण से, विलय स्ट्रिंग 'कुंजी' के साथ "कुंजी" (i.e slug) के मान को प्रतिस्थापित करता है।ट्रिग

उदाहरण के लिए जब स्लग '_' के साथ शुरू नहीं कुंजी के साथ ही विशेषता है,

key = slug 
value = something 

यह प्रकार कार्य करता है:

{% for key,value in app.request.attributes.all %} 
    {% if '_' != key | slice(0, 1) %} 
     {{ dump(key) }} // string(4) "slug" 
     {% set params = params | merge({ key : value}) %} 
     {{ dump(key) }} // string(4) "slug" 
    {% endif %} 
{% endfor %} 
{{ dump(params) }} // array(1) { ["key"]=> string(9) "something" } 

मैं जोड़ लिया है क्या डंप उनके बगल में वापसी ।

अंतिम डंप रिटर्न

array(1) { ["key"]=> string(9) "something" } 

जब मैं

array(1) { ["slug"]=> string(9) "something" } 

उम्मीद कर रहा हूँ मैं इसे Twig forgets array-keys लिए एक समान समस्या है कहेंगे लेकिन उस सवाल पर निष्कर्ष यह है कि एक समस्या है और MongoDB मैं इसका उपयोग नहीं कर रहा हूँ। मैं अनुरोध से गुणों के साथ काम कर रहा हूं।

किसी कारण से, विलय ({key: value}) मर्ज ({'key': value}) के रूप में व्यवहार कर रहा है।

उत्तर

22

आपको अपने वैरिएबल को कोष्ठक के साथ लपेटने की आवश्यकता है ताकि वह इसे कुंजी के रूप में उपयोग कर सके।

{% set params = params | merge({ (key) : value}) %} 
+0

यह काम करता है, धन्यवाद! – mezod

+0

आपका स्वागत है, इस उत्तर को सही के रूप में मान्य करने पर विचार करें, धन्यवाद! –

+0

किया गया, मुझे पता नहीं था कि मैं ऐसा कर सकता हूं: मेरे लिए पी – mezod

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