2012-02-06 57 views
0

因此,我創建了一個視圖助手來專門化/簡化Flash Messenger助手的一些功能。從另一個ViewHelper訪問ViewHelper特別是FlashMessenger

我一直在四處尋找了很多,看到你應該能夠通過代碼來訪問FlashMessenger助手這樣的:

$這個 - >查看 - > _ helper-> flashMessenger->的getMessages();

這不適合我。我可以訪問視圖,但不能在_helper下查看任何內容。我的助手類擴展了Zend_View_Helper_Abstract。你是否必須顯式傳遞視圖腳本中的視圖?

回答

3

Zend_Controller_Action的$_helper屬性存儲Zend_Controller_Action_HelperBroker的一個實例,所以不是從視圖中你的助手通過它,你可以得到HelperBroker的一個實例,然後從那裏得到以FlashMessenger對象。

// inside your view helper 
$messenger = Zend_Controller_Action_HelperBroker::getStaticHelper('FlashMessenger'); 

現在,您可以從視圖助手中訪問Flash Messenger。您可以在應用程序的任何位置執行相同操作,以獲取對任何Action Helpers的引用。

另請注意,如果幫助程序尚未創建,則調用getStaticHelper會爲您初始化它。

查看Action Helpers - The Helper Broker瞭解更多信息。

+0

真棒,多麼完美的答案。我很感激。 – 2012-02-07 18:08:34

相關問題