इसके बजाय attribute
function का उपयोग कर के, आप के रूप में अच्छी नियमित ब्रैकेट अंकन के साथ _context
सरणी के मूल्यों का उपयोग कर सकते हैं:
{{ _context['placeholder' ~ id] }}
मैं व्यक्तिगत रूप से इस एक के रूप में यह अधिक संक्षिप्त है और मेरी राय स्पष्ट में प्रयोग करेंगे।
environment optionstrict_variables
true
के लिए सेट है, तो आप भी default
फिल्टर का उपयोग करना चाहिए: यदि चर मौजूद नहीं है
{{ _context['placeholder' ~ id]|default }}
{{ attribute(_context, 'placeholder' ~ id)|default }}
नहीं तो आप एक Twig_Error_Runtime
अपवाद मिल जाएगा। उदाहरण के लिए, यदि आपके पास foo
और bar
चर हैं, तो वेरिएबल baz
(जो मौजूद नहीं है) को आउटपुट करने का प्रयास करें, आपको Key "baz" for array with keys "foo, bar" does not exist
संदेश के साथ अपवाद मिलता है। default
फिल्टर के साथ
{% if _context['placeholder' ~ id] is defined %} ... {% endif %}
आप जैसे, एक डिफ़ॉल्ट मान प्रदान कर सकते हैं:
एक चर के अस्तित्व की जाँच करने के लिए एक और अधिक वर्बोज़ रास्ता defined
test उपयोग करने के लिए है null
या एक स्ट्रिंग:
{{ _context['placeholder' ~ id]|default(null) }}
{{ attribute(_context, 'placeholder' ~ id)|default('Default value') }}
आप डिफ़ॉल्ट मान छोड़ देते हैं (उदा आप |default(somevalue)
के बजाय |default
उपयोग करें), डिफ़ॉल्ट मान को खाली स्ट्रिंग होगा।
strict_variables
false
डिफ़ॉल्ट रूप से है, लेकिन मैं true
के लिए सेट करने के लिए जैसे के कारण आकस्मिक समस्याओं से बचने के पसंद करते हैं लिखने की त्रुटियों।
आप प्लेसहोल्डर 1 - x कहां परिभाषित करते हैं? क्या वे वैश्विक पहुंच योग्य हैं क्या प्रत्येक चालान को अपना प्लेसहोल्डर मिल जाता है? – KhorneHoly
मैं उन्हें नियंत्रक में परिभाषित कर रहा हूं और उन्हें जुड़वां टेम्पलेट में भेज रहा हूं। –
क्या आप मुझे वह कोड दिखा सकते हैं जहां आप परिभाषित कर रहे हैं और उन्हें पास कर रहे हैं? तो मुझे आपकी मदद करने में सक्षम होना चाहिए :) – KhorneHoly