2009-10-23 4 views

उत्तर

5

अवयव टेम्पलेट्स संभाल नहीं है, आप केवल आंशिक उपयोग कर सकते हैं:

(http://www.symfony-project.org/ सवाल एक php ढांचे के बारे में हो रहा है)। आप इस तरह से कुछ कर सकते हैं तो आप अपने घटकों वर्ग के अंदर से एक विशिष्ट आंशिक वापस जाने के लिए की जरूरत है:

return get_partial('module/action', array('paramName' => $paramValue)); 

symfony book, chapter 7 view layer

10

में एक नज़र वहाँ sfComponents पर कोई setTemplate तरीका है। आपके पास अनिवार्य रूप से 3 विकल्प हैं:

  1. अपने घटक को उस आंशिक के समान नाम दें जिसे आप प्रस्तुत करना चाहते हैं। यह संभव नहीं हो सकता है यदि आपके पास एक से अधिक घटक हैं जिन्हें आप एक ही टेम्पलेट साझा करना चाहते हैं।
  2. अपने घटक के समान नाम के साथ आंशिक बनाएं और आंशिक शामिल करें। यही है, अगर आपके पास executeFoo() विधि वाला घटक था जिसे आप _bar.php टेम्पलेट प्रस्तुत करना चाहते थे, तो _foo.php के अंदर बस include_partial('bar', $vars) पर कॉल करें।
  3. पार्टियलहेल्पर लोड करें और घटकों को निष्पादित विधि के अंदर आंशिक रूप से आंशिक रूप से प्रस्तुत करें और घटक को वापस sfView :: NONE करें।
+0

लेकिन वापस घटक से सावधान रहें sfView :: घटक पर कोई घटक कम से कम 1.0 में घटक को कैश नहीं करेगा - यह निश्चित रूप से कैश फ़ाइल की जांच करने योग्य है – timmow

+0

क्या आप सुनिश्चित हैं कि पाठ अभी भी कैश नहीं किया जाएगा, भले ही पाठ है इसके अंदर प्रस्तुत किया? यदि यह सत्य है, तो हाँ, यदि आप कैश-सक्षम घटक चाहते हैं तो मैंने विधि 3 का उपयोग नहीं किया है (मैंने कभी भी विधि 3 का उपयोग नहीं किया है।) –

+0

+1 के लिए +1 चीजों को सरल रखने के लिए – Dziamid

5

इस के आसपास पाने के लिए, मैं कर रहा हूँ:

echo get_component('module', 'action', $this->getVarHolder()->getAll()); 
return sfView::NONE; 
+0

इसने मुझे खाली टेम्पलेट फ़ाइलों का एक गुच्छा बचाया। – Lg102

0

यह मेरे लिए काम किया:

$this->setVar('template', 'templateName'); 

जाहिर टेम्पलेट बिल्कुल एक ही मॉड्यूल में रहना होगा।

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

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