2010-11-26 38 views
15

我有以下控制器等方法它有一個,這一個:Zend - 如何禁用給定動作的佈局?

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

+0

有毛病我的問題嗎?我應該提供更多細節嗎?我是在說些虛假的東西嗎?請告訴我。卡在這裏。 – MEM 2010-11-26 19:17:47

+0

你能指定你的問題嗎?您是否想要禁用佈局,或者在動作不存在時是否要重定向到主頁? – Nedec 2010-11-26 19:50:40

回答

5

這可能不是直接(你似乎無論如何解決)回答你的問題,但禁用佈局,並提供對AJAX請求了不同的看法,可以考慮使用AjaxContext行動助手。

20

控制器內添加這樣的:

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

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