Zend行动助手未加载*有时*

时间:2011-10-07 23:36:57

标签: php zend-framework

我有一个zend动作助手,偶尔不会加载。我得到了例外:

Action helper by name EditAction not found

任何想法为什么有时它会找到它,有时它不会?

我更改了异常以列出操作助手目录的内容,文件就在那里。我也打印出帮助者的内容......也没关系。

有什么想法吗?

2 个答案:

答案 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