Zend框架致命错误:找不到类'Application_Model_DbTable_Albums'

时间:2011-08-08 08:09:53

标签: zend-framework classnotfound

我正在尝试从Rob Allen的“Zend Framework入门”中学习Zend框架。我使用了相同的示例,但得到了错误 -

  

致命错误:第14行的/var/www/html/workbench/sreekantk/zf-tutorial/application/controllers/IndexController.php中找不到“Application_Model_DbTable_Albums”类。

我想我必须设置模型文件夹的路径,但不知道该怎么做。任何人都可以帮助我解决这个问题。

这是我的Bootstrap.php文件。

  

// application / Bootstrap.php

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    {
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH.'/application/modules'));
        return $autoloader;
    }

}

谢谢你。它工作了。实际上我更改了文件夹结构,然后再次将appnamespace="Application"添加到application.ini文件中。谢谢大家的意见。

4 个答案:

答案 0 :(得分:2)

只要你到达控制器,你的主要设置似乎没问题。所以,如果你把这个类放在一个单独的文件中,问题可能就是一个简单的错字。

a)以下所有内容,请注意下/下案例 b)注意模型文件夹是复数,而类是模型单数
c)确保该类名为Application_ Model _DbTable_Albums
d)确保文件名为Albums.php,并且名为application/models/DbTable

祝学习ZF好运

答案 1 :(得分:1)

从版本1.9.2开始,默认模块将自动初始化appnamespace中配置的命名空间的自动加载器(在vanilla安装时默认为“Application”)。您可以删除_initAutoload()方法。

只要您的班级存在于application/models/DbTable/Albums.php中且名为Application_Model_DbTable_Albums,它就应该能够在首次使用时自动加载该类。

注意路径区分大小写。

答案 2 :(得分:0)

我正在按照相同的教程和Adrian World在11月9日13:26所说的话帮助我摆脱了错误。我的Bootstrap现在是:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    protected function _initAutoload()
    {
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => APPLICATION_PATH.'/application/models'));
        return $autoloader;
    }
}

唯一改变的是模块模型

答案 3 :(得分:0)

您应该定义当前Module的Bootstrap类。那就没事了。

相关问题