在我的模块引导程序中:
<?php
class Api_Bootstrap extends Zend_Application_Module_Bootstrap
{
protected function _initAllowedMethods()
{
$front = Zend_Controller_Front::getInstance();
$front->setParam('api_allowedMethods', array('POST'));
}
protected function _initActionHelperBrokers()
{
Zend_Controller_Action_HelperBroker::addPath(APPLICATION_PATH . '/modules/api/controllers/helpers', 'Api_Controller_Action_Helper_');
Zend_Controller_Action_HelperBroker::addHelper(new Api_Controller_Action_Helper_Model());
}
}
Api_Controller_Action_Helper_Model
/var/www/project/application/modules/api/controller/helpers/Model.php
但我明白了:
PHP Fatal error: Class 'Api_Controller_Action_Helper_Model' not found in /var/www/accounts.amh.localhost/application/modules/api/Bootstrap.php on line 15
据我所知,API和http://akrabat.com/zend-framework/using-action-helpers-in-zend-framework/这应该可行。
我很确定这不是像以前那样的引导问题,因为我在尝试添加帮助程序之前专门添加了路径/前缀。
我还有什么可能错过的?
答案 0 :(得分:2)
这里的问题是模块自动加载器不知道控制器动作助手资源。
在模块引导程序中尝试这样的事情
protected function _initResourceLoader()
{
$resourceLoader = $this->getResourceLoader();
$resourceLoader->addResourceType('actionhelper',
'controllers/helpers', 'Controller_Action_Helper');
}
所有这一切,因为你的助手有一个空的构造函数,你可以省略addHelper()
行,让代理在控制器中请求时自动创建它,例如
$helper = $this->getHelper('Model');