1

我的目录结构如下:

   Application
   Config
   Control
   Form
   Layout
   Models
     |
     ----Db
         |
          ---Db_Db.php
   Views
   Bootstrap

我在我的引导文件中添加了这段代码:

protected function _initAutoload()
{   
 $resourceLoader = new Zend_Loader_Autoloader_Resource(array(
'basePath'  => '/../models/',
'namespace' => 'Db',
));
$resourceLoader->addResourceType('Db', 'Db/', 'Db'); 
}  

在我的一个控制器中,我正在使用:

    require_once "Db_Db.php";

但它给了我一个错误:

警告:require_once(Db_Db.php):无法打开流:C:\wamp\bin\apache\apache2.2.22\htdocs\helloworld\application\controllers\AccountController.php 中没有这样的文件或目录,第 41 行调用堆栈

你能告诉我可能出了什么问题吗?

另外我的Bootstrap文件只包含上面的代码,其余的我所有的东西,比如应用程序环境,都在index.php公共文件夹下,会有什么不同吗?

4

2 回答 2

0

在这种情况下,您假设您有 Db_Db 命名空间并且类名应该是 Db_Db_Db。第二件事,使用 APPLICATION_PATH 常量使路径正确。只需执行以下操作:

$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
    'basePath'  => APPLICATION_PATH . '/../models/',
    'namespace' => ''
));
于 2012-08-09T15:10:40.523 回答
0

对于加载文件,您应该使用 Zend_Autoloader 而不是 require_once ,它将遵循来自 zend 框架的所有自动加载配置。

参考这个http://framework.zend.com/manual/en/zend.loader.load.html

您在文件 Db_Db.php 中给出的类名是什么?

于 2012-08-09T15:33:59.633 回答