2010-02-01 6 views
7

मैं कुछ HTML को एक XML टेम्पलेट में आउटपुट करने का प्रयास कर रहा हूं और सिम्फनी की एस्केपिंग विधि इसे गड़बड़ कर रही है। इसलिए मैंने मॉड्यूल के कॉन्फ़िगरेशन फ़ोल्डर में settings.yml की एक प्रति बनाने की कोशिश की, लेकिन ऐसा लगता है कि इसे पूरी तरह से अनदेखा किया जाता है। क्या प्रति मॉड्यूल या यहां तक ​​कि प्रति टेम्पलेट escaping_strategy और/या escaping_method सेटिंग्स को बदलने का कोई आसान तरीका है?सिम्फनी - क्या प्रति मॉड्यूल (या प्रति टेम्पलेट) से बचने के आउटपुट को अक्षम करना संभव है?

उत्तर

17

जबकि आउटपुट से बचने पर आपको अभी भी $sf_data के माध्यम से कच्चे मूल्य तक पहुंच है।

$this->html = '<b>My HTML</b>'; 

आप इस के साथ नहीं छोड़ा जाएगा प्राप्त कर सकते हैं:

<?php echo $sf_data->getRaw('html') ?> 

http://www.symfony-project.org/book/1_0/07-Inside-the-View-Layer#chapter_07_sub_activating_output_escaping

उदाहरण के लिए, यदि आप HTML उत्पादन की कोशिश कर रहे एक चर में जमा हो गया था अपनी कार्रवाई में एचटीएमएल बुलाया

मुझे विश्वास नहीं है कि इस कार्यक्षमता को प्रति-मॉड्यूल आधार पर अक्षम करने का एक तरीका है।

+5

अच्छा लगता है, इस बारे में नहीं पता था। मुझे इस तरह के प्रश्न को समझ में नहीं आया था और केवल एक ऑब्जेक्ट के लिए जवाब देने वाला था: $ yourObject-> getRawValue() -> getProperty() .. अगर यह मदद करता है ... – Julien

+0

जूलियन: अगर वह काम करने की कोशिश कर रहा है मॉडल ऑब्जेक्ट से बाहर आपका समाधान सही होगा, आपको बस मामले में उत्तर के रूप में पोस्ट करना चाहिए। – nortron

+0

धन्यवाद क्रायो, $ sf_data-> getRaw() ने चाल की है। जूलियन, मॉडल से इसका उपयोग कैसे करें इस बारे में जानकारी के लिए धन्यवाद। –

10

getRaw केवल तभी कार्य करता है जब चर से क्रिया पार हो जाती है। दृश्य के भीतर चर

sfOutputEscaperGetterDecorator::unescape($html) 
+0

इस टिप के लिए बड़ा धन्यवाद! –

+0

मैं कुछ विशेषता को अनदेखा करने के लिए देख रहा था, लेकिन दुर्भाग्यवश, गुण $ sf_data-> getRaw (..) के माध्यम से accessibles नहीं हैं। लेकिन आपके जवाब ने चाल की है! धन्यवाद! –

9

का उपयोग के लिए बस आज इस समस्या में चलाने के लिए और मैं अपने नियंत्रक में sfConfig::set('sf_escaping_strategy', false) निर्धारित करके इसे हल करने का प्रबंधन (या तो है कि मॉड्यूल में या एक विशिष्ट कार्रवाई में सभी कार्यों के लिए preExecute विधि में - executeWhatever) ।

+0

विरासत प्रणाली पर काम करते समय उपयोगी। –

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