Я использую Propel ORM для своих моделей &. Мои модели находятся под/моделями.
Я добавил строку в мой файл 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;
}
В моей библиотеке есть гентские праздники я:
- Controller
- Helper
- Plugin
И в помощнике у меня есть "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 не может быть найден. Ошибка:
Fatal error: Class 'RoleQuery' not found in /Applications/MAMP/htdocs/GentseFeesten/library/GentseFeesten/Controller/Helper/Acl.php on line 35
Я включил мой Acl плагин в Bootstrap, как это:
new GentseFeesten_Controller_Helper_Acl($this->getResource('frontController'));
$frontController = Zend_Controller_Front::getInstance();
$frontController->registerPlugin(new GentseFeesten_Controller_Plugin_Acl());
Кто-нибудь знает, почему он не может найти мои модели в плагине?