我将 Propel ORM 用于我的模型和映射。我的模型在 /models 下。
我在 index.php 文件中添加了一行,以确保他找到我的模型:
// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
realpath(APPLICATION_PATH . '/models'),//propel
get_include_path(),
)));
我可以在我的模块中使用查询,效果很好。但是当我想在我的 Acl Helper 中使用它时,他找不到模型......
我在 Zend Framework 项目中创建了一个命名空间,名为“GentseFeesten”。
我已将此添加到我的 Bootstrap.php 中:
protected function _initAutoload()
{
$moduleLoader = new Zend_Application_Module_Autoloader(array(
'namespace' => '',
'basePath' => APPLICATION_PATH));
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->registerNamespace('GentseFeesten_');
return $moduleLoader;
}
在我的 GentseFeesten 图书馆中,我有:
- 控制器
- 帮手
- 插入
在助手中我有“Acl.php”。我有一个函数 setRoles() :
private function setRoles() {
// Database query
$roles = RoleQuery::create()
->orderById()
->find();
foreach ($roles as $role) {
if($parentrole == 0)
{
$this->local_acl->addRole(new Zend_Acl_Role($role->getRole()));
}
else{
$this->local_acl->addRole(new Zend_Acl_Role($role->getRole()), $parentrole);
}
$parentrole = $role->getRole();
}
}
但是找不到 RoleQuery。错误:
致命错误:在第 35 行的 /Applications/MAMP/htdocs/GentseFeesten/library/GentseFeesten/Controller/Helper/Acl.php 中找不到类“RoleQuery”
我在 Bootstrap 中包含了我的 Acl 插件,如下所示:
new GentseFeesten_Controller_Helper_Acl($this->getResource('frontController'));
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new GentseFeesten_Controller_Plugin_Acl());
有谁知道为什么他在插件中找不到我的模型?