2010-07-29 15 views
10

Ich habe einen Controller, der ich für AJAX-Skripte verwenden möchten aufrufen und einstellen Session-Variablen, Informationen usw. Wie kann ich es so, dass diese bestimmte Controller nicht die nicht verwendet Standard-Layout (speziell kein Layout), so dass es XML/JSON-Nachrichten hin und her senden kann?Zend Framework - Stellen Sie kein Layout für Controller

Antwort

15

Wie alles mit Zend_Framework und Zend_Application, gibt es mehrere Möglichkeiten, dies zu tun, um zu tun, aber auf den letzten reinen Zend Gigs ich getan habe, habe ich Leute gesehen, die Folgendes verwenden (aus einer Aktionsmethode in Ihrem Controller):

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

Dies schließt das Layout. Wenn Sie auch deaktivieren Ihrer Ansicht nach wollten, könnten Sie

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

wieder von einer Aktionsmethode in der Steuerung verwenden.

2

In Ihrem Controller-Aktion, versuchen

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

in Ihrem Controller ...

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