我有一个zend动作助手,偶尔不会加载。我得到了例外:
Action helper by name EditAction not found
任何想法为什么有时它会找到它,有时它不会?
我更改了异常以列出操作助手目录的内容,文件就在那里。我也打印出帮助者的内容......也没关系。
有什么想法吗?
答案 0 :(得分:0)
在使用它之前,您似乎没有注册您的EditAction助手Zend Controller Action助手经纪人。如果您的EditAction位于library / My / EditAction.php,并且该类名为My_EditAction,则在bootstrap中执行此操作
Zend_Controller_Action_HelperBroker::addHelper(new My_EditAction());
答案 1 :(得分:0)
:: addPath()也应该可以正常工作。如果您只有一个Action Helper,我仍然建议使用:: addHelper而不是addPath()。如果路径中有多个Action助手,则可以在bootstrap中使用addPrefix()而不是:: addHelper()
Zend_Controller_Action_HelperBroker::addPrefix('My_Action_Helpers');
要确定助手代理中是否存在助手,请使用hasHelper($ name),其中$ 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