Zend - 如何禁用给定操作的布局?

MEM*_*MEM 15 layout zend-framework views zend-view zend-layout

我有以下控制器,除了其他方法,它有这个:

class EquipasController extends OccControllerAction {

    public function listaAction()
    {    
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
    }
}
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我当时正在等待:http: //www.example.com/equipas/lista/

控制器将执行,我将看不到我的视口上的布局渲染.

但事实并非如此.我得到了我的主页.

在ZF上我们通常会说:如果某个操作不存在,主页应该出现?

注意:如果,而不是:http: //www.example.com/equipas/lista/

我这样做, http://www.example.com/equipas/adasdas21232131/ 不存在.

我得到相同的主页渲染.

这种行为可能是什么原因?

一个Zend新手,MEM

lid*_*ing 22

在控制器中添加:

public function preDispatch(){
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
    }
Run Code Online (Sandbox Code Playgroud)


Phi*_*hil 5

这可能无法直接回答您的问题(您似乎已经解决了这个问题),但要禁用布局并为AJAX请求提供不同的视图,请考虑使用AjaxContext操作助手.