问题
I have a Controller that I want to use for ajax scripts to call and set session variables, get information, etc. How do I set it so that that particular controller doesn't use the default layout (specifically NO layout) so that it can send XML/JSON messages back and forth?
回答1:
Like anything to do with Zend_Framework and Zend_Application, there are multiple ways to do this, but on the last few pure Zend gigs I've done, I've seen people using the following (from an action method in you controller)
$this->_helper->layout()->disableLayout();
This shuts off of the layout. If you wanted to turn off your view as well, you could use
$this->_helper->viewRenderer->setNoRender(true);
again, from an action method in the controller.
回答2:
in your controller ...
public function init() {
if ($this->getRequest()->isXmlHttpRequest()) {
// no Layout
$this->_helper->layout()->disableLayout();
// no views
$this->_helper->viewRenderer->setNoRender(true);
}
}
回答3:
In your controller action, try
$this->_helper->layout->disableLayout();
来源:https://stackoverflow.com/questions/3367601/zend-framework-set-no-layout-for-controller