2013-03-22 144 views
0

在我的MVC應用程序的視圖和佈局腳本中,我經常需要訪問諸如isLoggedIn()isAdmin()等便利方法。我想將這些放在基本視圖中,以便我可以使用$this->isLoggedIn()$this->isAdmin()訪問它們。什麼是正確的方法來做到這一點?如何正確地擴展Zend視圖

我試着用MY_Base_View擴展Zend_View。然後我創建了一個View資源並從我的引導中初始化它。我知道它正在初始化,因爲頁面標題工作正常。下面是從資源的代碼:

$this->_view = new MY_Base_View(); 
$this->_view->headTitle('My page title!'); 

當我在視圖腳本,但是,如果我print_r($this),它說的對象是一個Zend視圖對象(不MY_Base_View)。

已經有類似的問題與佈局。

謝謝!

回答

0

啊!分類出來。在視圖資源,我需要爲ViewRenderer設定視圖,如下所示:

$viewRenderer = Zend_Controller_Action_HelperBroker 
     ::getStaticHelper('ViewRenderer'); 
    $viewRenderer->setView($this->_view);   

(這是在手冊的參考資料部分!)總之,這就是我不得不這樣做。爲了完成它的工作,佈局會查找與渲染器一起註冊的視圖...

+0

您也可以使用視圖助手實現此開箱即用 – 2013-03-22 09:05:43