2013-03-08 10 views
11

क्या यह मौजूद है तो केवल एक टवीग चर का प्रदर्शन/उपयोग करने का कोई स्मार्ट तरीका है?twig: केवल वैरिएबल वेरिएबल है यदि यह मौजूद है

कहो, मैं एक संरचना है:

'opt1': {'visible': false, 'bundle': 'XxxBundle', 'name': 'label1'}, 
'opt2': {'visible': true, 'bundle': 'YyyBundle', 'name': 'label2', 'params': '/par1'}, 

और मैं में इसका इस्तेमाल करते हैं:

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params)}}"> 

मैं टहनी चाहते हैं desc.params छोड़ अगर यह अलग के लिए मौजूद नहीं है प्रवेश। if कथन का उपयोग करने से कोई बेहतर तरीका है?

उत्तर

16

आप बस इसे एक डिफ़ॉल्ट खाली स्ट्रिंग पास कर सकते हैं।

<a href="{{path(desc.bundle ~ '_' ~ action ~ desc.params|default(''))}}"> 

इस तरह अगर यह सिर्फ एक खाली स्ट्रिंग को परिभाषित नहीं करता है। http://twig.sensiolabs.org/doc/filters/default.html

+0

आप, साथ ही उपयोग कर सकते हैं 'desc.params '('')')। – fritzmg

4

एक अन्य समाधान config.yml फ़ाइल आप में गलत पर strict_variables स्थापित करने के लिए है: आप यहाँ डिफ़ॉल्ट फ़िल्टर के बारे में अधिक पढ़ सकते हैं | बिना default` (

twig: 
    ... 
    strict_variables: false 
+2

यह सभी चर के लिए सत्यापन बंद कर देगा और आपको अभी भी अपने ऐप के अन्य स्थान पर इसकी आवश्यकता हो सकती है। अगर आप इस विकल्प का उपयोग करते हैं तो बस सावधान रहें। – Chausser

+2

यदि एक बार पर्याप्त नहीं है तो मैं फिर से सावधान रहूंगा। '{{Val | default ('')}} का उपयोग करना आसान है। मुझे लगता है कि हमारे पास जावास्क्रिप्ट के साथ पर्याप्त देर से कीड़े हैं। –

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