2012-02-13 279 views
4

我有一個login.phtml查看想要放入一個通用路徑並通過應用程序讓任何模塊訪問它。從另一個視圖調用視圖

對於由$this->render('common/sidebar.phtnl')呈現的側邊欄,它可以工作,因爲我的佈局對於所有模塊都是單一佈局。

但是,當涉及到內容$this->layout()->content,如果我在結果視圖中添加助手,如$this->login(),Zend會一直在模塊腳本路徑中查找它。

即使我的流程是模塊的結果,如何才能使我的內容視圖呈現另一個通過助手的常見視圖?

回答

1

這看起來很不錯custom view helper。編寫你自己的代碼非常簡單,一旦你嘗試過,你將無法停下來!

你的自定義視圖助手應該在application/views/helpers/NameOfHelper.php中,並且應該有一個名爲nameOfHelper()的公共方法。我將使用登錄作爲示例,因爲這是您在此場合的用例。

首先創建應用程序/視圖/助理/ login.php中: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract 
{ 
    public function login() 
    { 
     return "Logging in!"; 
    } 
} 
視圖或佈局

後來乾脆: -

echo $this->login(); 

,並得到輸出: -

登錄!

不可能更容易!

另外,如果你想使用一個視圖腳本,你可以做到這一點在你的login()方法: -

class Zend_View_Helper_Login extends Zend_View_Helper_Abstract 
{ 
    public function login() 
    { 
     $this->view->exampleVar = 'example value'; 
     return $this->view->render('login.phtml') 
    } 
} 

然後,當您在您的視圖或佈局做echo $this->login()你會發現你想要的輸出。

顯然,你可以把任何你想要的代碼放到login()方法中。

+0

感謝您的解釋。這很容易理解! – thangchung 2013-11-06 03:34:18

0

從您可以查看腳本:

<?php echo $this->render("menus/recetas.phtml"); ?> 
相關問題