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

时间:2010-11-26 18:01:27

标签: zend-framework layout views zend-view zend-layout

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

class EquipasController extends OccControllerAction {

    public function listaAction()
    {    
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
    }
}

当我这样做的时候,我在期待: http://www.example.com/equipas/lista/

控制器将执行,我将在视口中看不到任何布局渲染。

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

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

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

我知道, http://www.example.com/equipas/adasdas21232131/ 那不存在。

我得到相同的主页渲染。

造成这种行为的原因是什么?

一个Zend新手, MEM

3 个答案:

答案 0 :(得分:22)

在控制器中添加:

public function preDispatch(){
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
    }

答案 1 :(得分:5)

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

答案 2 :(得分:0)

zf2中的

 public function indexAction()
    {    
        echo "json"
        return $this->getResponse();
    }