2009-10-23 11 views
60

मुझे यकीन है कि यह एक साधारण एक-लाइनर है, लेकिन मुझे यह प्रतीत नहीं होता है।ज़ेंड फ्रेमवर्क में लेआउट फ़ाइलों को कैसे स्विच करें?

मैं किसी विशेष कार्रवाई के लिए एक अलग लेआउट फ़ाइल का उपयोग कैसे कर सकता हूं?

अद्यतन: यह मेरे लिए काम करता है, धन्यवाद!

// Within controller 
$this->_helper->_layout->setLayout('other-layout') //other-layout.phtml 

//Within view script 
<?php $this->layout()->setLayout('other-layout'); ?> 
+0

क्या कोई '_helper_layout' को ठीक कर सकता है, इसे' _helper-> लेआउट ' – MitMaro

+0

प्राप्त करना चाहिए। धन्यवाद! – Andrew

उत्तर

62
एक नियंत्रक के अंदर से

:

$this->_helper->layout->setLayout('/path/to/your/layout_script'); 

(these docs के माध्यम से)

संपादित करें: मैं उल्लेख करना चाहिए कि पथ जो कुछ भी अपने लेआउट निर्देशिका है के सापेक्ष है (डिफ़ॉल्ट रूप से, यह application/layouts/scripts/ है)

+4

या, यदि लेआउटपैथ सही ढंग से सेट किया गया है ('$ लेआउट-> setLayoutPath ('एप्लिकेशन/लेआउट/स्क्रिप्ट्स')'), '$ this -> _ helper_layout-> setLayout (' वैकल्पिक_layout ') 'अनुप्रयोग/लेआउट संदर्भित करने के लिए'/scripts/alternative_layout.phtml'। – chelmertz

+0

एक दृश्य के अंदर से: लेआउट() -> setLayout ('/ path/to/your/layout_script')?> – Travis

+0

@Travis: मैं एक दृश्य स्क्रिप्ट में उस तरह का तर्क नहीं चाहता जब तक कि आप वास्तव में वास्तव में नहीं मिला छोटी संख्या में दृश्य स्क्रिप्ट्स ताकि आपको पता चले कि इन अनुप्रयोगों के लिए महत्वपूर्ण सेटिंग्स कहां डीबग करें। – chelmertz

13

आप इस

जैसे भी उपयोग कर सकते हैं

आपका लेआउट/लेआउट/स्क्रिप्ट/फ़ोल्डर में होना चाहिए, अन्यथा आपको पथ निर्दिष्ट करने की आवश्यकता है। .phtml लिखने की कोई ज़रूरत नहीं है, लेआउट का नाम

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

  • कोई संबंधित समस्या नहीं^_^