Zend Framework - 为控制器设置无布局

ash*_*exm 11 php zend-framework zend-controller zend-view zend-layout

我有一个控制器,我想用于ajax脚本调用和设置会话变量,获取信息等.我如何设置它,以便该特定控制器不使用默认布局(特别是没有布局),以便它可以来回发送XML/JSON消息?

Ala*_*orm 17

就像Zend_Framework和Zend_Application一样,有很多方法可以做到这一点,但是在我做过的最后几次纯Zend演出中,我看到有人使用以下内容(来自你控制器中的动作方法)

$this->_helper->layout()->disableLayout();
Run Code Online (Sandbox Code Playgroud)

这会关闭布局.如果你想关闭你的视图,你可以使用

$this->_helper->viewRenderer->setNoRender(true);
Run Code Online (Sandbox Code Playgroud)

再次,从控制器中的动作方法.


fel*_*uch 7

在你的控制器......

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