2010-11-26 7 views
15

मैं निम्नलिखित नियंत्रक अन्य तरीकों के बीच यह है कि, है इस एक:ज़ेंड - किसी दिए गए क्रिया पर लेआउट को अक्षम कैसे करें?

class EquipasController extends OccControllerAction { 

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

मैं उम्मीद कर रहा था कि, मुझे क्या करना है जब: http://www.example.com/equipas/lista/

नियंत्रक निष्पादित करेंगे और मेरे पास कोई लेआउट प्रतिपादन देखेंगे मेरे व्यूपोर्ट पर

हालांकि, ऐसा नहीं है। मुझे अपना होम पेज प्रदान किया जाता है।

जहां ज़ेड पर हम सामान्य रूप से कहते हैं: यदि कोई कार्रवाई मौजूद नहीं है तो होम पेज दिखाना चाहिए?

नोट: हैं, के बजाय: http://www.example.com/equipas/lista/

मैं करता हूँ, http://www.example.com/equipas/adasdas21232131/ जो मौजूद नहीं है।

मुझे वही होम पेज प्रतिपादन मिलता है।

इस तरह के व्यवहार का कारण क्या हो सकता है?

एक Zend नौसिखिया, सदस्य

+0

कुछ मेरे सवाल के साथ गलत? क्या मुझे और विवरण देना चाहिए? क्या मैं कुछ डमी कह रहा हूँ? कृपया मुझे बताओ। यहाँ फँस गया। – MEM

+0

क्या आप अपनी समस्या निर्दिष्ट कर सकते हैं? क्या आप लेआउट को अक्षम करना चाहते हैं या जब आप कोई क्रिया मौजूद नहीं है तो क्या आप मुखपृष्ठ पर रीडायरेक्ट करना चाहते हैं? – Nedec

+0

धन्यवाद। नहीं। जब मैं कार्रवाई नहीं करता हूं तो मैं लेआउट को अक्षम नहीं करना चाहता हूं और न ही मुखपृष्ठ पर रीडायरेक्ट करना चाहता हूं। मैं क्या चाहता हूं, जब हम करते हैं: http://www.mysite.com/equipas/lista/ (SO, जब हम एक्शन लिस्टा कहते हैं) लेआउट का उपयोग नहीं किया जाता है। क्यूं कर? उदाहरण के लिए AJAX कॉल के लिए। धन्यवाद। – MEM

उत्तर

5

यह सीधे (जो तुम वैसे भी समाधान कर लिया है करने लगते हैं) आपके प्रश्न का उत्तर नहीं है, लेकिन लेआउट को निष्क्रिय और AJAX अनुरोध के लिए एक अलग दृष्टिकोण देने, AjaxContext उपयोग करने पर विचार करने के लिए एक्शन हेल्पर

+0

क्या इससे मुझे कुछ गहरे लिंक मुद्दों को हल करने में मदद मिलेगी? – MEM

20

अपने नियंत्रक के अंदर इस जोड़ें:

zf2 में
public function preDispatch(){ 
     $this->_helper->layout()->disableLayout(); 
     $this->_helper->viewRenderer->setNoRender(true); 
    } 
0

public function indexAction() 
    {  
     echo "json" 
     return $this->getResponse(); 
    } 
संबंधित मुद्दे