2010-07-29 8 views
10

Ho un controller che voglio usare per script ajax per chiamare e impostare variabili di sessione, ottenere informazioni, ecc. Come faccio a impostarlo in modo che quel particolare controller non usi il layout predefinito (in particolare NO layout) in modo che possa inviare messaggi XML/JSON avanti e indietro?Zend Framework - Imposta nessun layout per il controllore

risposta

15

Come qualche cosa a che fare con Zend_Framework e Zend_Application, ci sono diversi modi per farlo, ma gli ultimi concerti puri Zend che ho fatto, ho persone che hanno visto quanto segue (da un metodo di azione nel controllore)

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

Questo si spegne dal layout. Se si desidera disattivare anche la vista, è possibile utilizzare

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

di nuovo, da un metodo di azione nel controller.

2

Nella vostra azione di controllo, prova a

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

nel controller ...

public function init() { 
    if ($this->getRequest()->isXmlHttpRequest()) { 
     // no Layout 
     $this->_helper->layout()->disableLayout(); 
     // no views 
     $this->_helper->viewRenderer->setNoRender(true); 
    } 
}