2009-10-11 10 views
10

मैं ज़ेंड फ्रेमवर्क के एमवीसी के साथ खेल रहा हूं। एक बात जो मैंने पाया वह यह है कि जब भी नियंत्रक कहलाता है तो ज़ेंड फ्रेमवर्क एक दृश्य स्क्रिप्ट शामिल करने का प्रयास करता है। मैं इसे निम्नलिखित कोड के साथ बूटस्ट्रैप में अक्षम कर सकता हूं।नियंत्रक में दृश्य स्क्रिप्ट को अक्षम कैसे करें - ज़ेंड फ्रेमवर्क

$ फ्रंटकंट्रोलर-> सेटपाराम ('नोव्यू रेंडरर', सत्य);

हालांकि, मुझे नियंत्रक विधि में Zend_View क्लास प्रारंभ करना है और फिर एक स्क्रिप्ट फ़ाइल प्रस्तुत करना है।

मैं नियंत्रक विधि में दृश्य स्क्रिप्ट को कैसे रोक सकता हूं ताकि मैं इसे अक्षम कर सकूं यदि मैं केवल चाहता हूं?

उत्तर

30

आप अपने नियंत्रक में इस कोड के साथ, देखने रेंडरर नियंत्रक सहायक निष्क्रिय कर सकते हैं:

public function myAction() 
{ 
    $this->_helper->viewRenderer->setNoRender(true); 
    // from now on, ZF won't search for a matching view script file. 
} 
+0

thns दोस्त ... यह मदद करता है .... और आपका जवाब 10 upvotes तक पहुंच गया :) – chhameed

1

आसान, बस इसे अपनी क्रिया के भीतर से अक्षम करें।

$this->_helper->layout->disableLayout(); 

यदि आप लेआउट के बारे में बात नहीं कर रहे हैं, तो बस अपनी कार्रवाई में बाहर निकलें() जोड़ें। बस समझें कि आपके आवेदन पर किस प्रकार का असर होगा।

+0

जो मैं नहीं पूछ रहा था, लेकिन यह भी सहायक है !! – Moon

4

सबसे अच्छा उदाहरण ऊपर दोनों आदेशों का उपयोग करने होगा:

public function myAction() { 
    $this->_helper->layout->disableLayout(); 
    $this->_helper->viewRenderer->setNoRender(true); 
} 

पहले एक लेआउट अक्षम करता है, सामान्य रूप से सक्षम है

application.ini

डिफ़ॉल्ट

resources.layout.layoutPath = APPLICATION_PATH "/ लेआउट/लिपियों"

$this->_helper->layout->disableLayout();

और दूसरे से अक्षम स्क्रिप्ट (.phtml) इसलिए अपवाद नहीं है, तो देखने देखें स्क्रिप्ट फ़ाइल नहीं मिली

$this->_helper->viewRenderer->setNoRender(true); 

ऐसे हेल्पर्स भी देख रहे हैं जिनमें बाउथ सुनना शामिल है और जरूरी नहीं है, उदाहरण के लिए आप जेएसओएन को सरणी डेटा से वापस करना चाहते हैं और दृश्य तत्व प्रस्तुत नहीं करना चाहते हैं।

public function myAction() { 
    $this->_helper->json(array()); 
} 

लेआउट प्रस्तुत नहीं करेगा और न ही स्क्रिप्ट देखेंगे।

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