2011-10-07 142 views
3

我有一個偶爾無法加載的zend動作助手。我得到的例外:Zend動作助手不加載*有時*

Action helper by name EditAction not found 

任何想法,爲什麼有時它發現它,有時它不?

我改變了例外以列出動作助手目錄的內容,並且文件在那裏。我也讓它打印出幫手的內容......也沒關係。

任何想法?

+3

我認爲你需要發佈一些代碼來得到一些幫助。你可以發佈這個課程以及你如何使用它的例子嗎? – vascowhite

回答

0

好像你是在使用它之前不註冊你的EditAction助手女巫Zend Controller操作助手代理。如果您EditAction位於庫/我的/ EditAction.php和類被稱爲My_EditAction然後爲此在引導

Zend_Controller_Action_HelperBroker::addHelper(new My_EditAction()); 
+0

我使用:: addPath(),而不是...是不夠的? – Sev

0

:: addPath()方法應該很好地工作,以及如果你有正確的路徑設置。如果你只有一個Action Helper,我仍然會推薦使用:: addHelper而不是addPath()。如果你的路徑有多個動作助手,你可以在程序的引導,而不是:: addHelper()使用addPrefix()方法

Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers'); 

要確定是否助手經紀人中是否存在某助手,使用hasHelper($名) ,其中$ name是助手的短名稱(去掉前綴):

// Check if 'redirector' helper is registered with the broker: 
    if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) { 
     echo 'Redirector helper registered'; 
    } 

http://framework.zend.com/manual/en/zend.controller.actionhelpers.html