在zend框架项目中找不到模型类(快速入门)

时间:2010-03-19 08:35:03

标签: zend-framework

我做的事情是

  1. zf在命令提示符下创建项目demo1
  2. 将行添加到application.ini
    • appnamespace =“申请”
    • resources.layout.layoutPath = APPLICATION_PATH“/ layouts / scripts”
  3. 使用partial()添加带页眉和页脚的布局(它们完美无缺)
  4. 在models目录中创建Data.php并添加这个简单的类

    <?php class Application_Model_Data{   }//Application for appnamespace 
    
  5. 然后我尝试从索引控制器索引操作

    加载此类(通过创建实例)

    $ data = new Application_Model_Data();

  6. 但是当我在这个级别测试它时会出现错误

    致命错误:在C:\ Zend \ ... \ IndexController.php中找不到类'Application_Model_Data'

  7. 问题

    1. 我想添加自动加载器吗? 在应用程序中加载模型(我不使用模块)
    2. 如果不是我错过了添加
    3. 的内容

      请帮助我一开始就被困住了,谢谢

5 个答案:

答案 0 :(得分:4)

这应该有用!!

将此功能添加到bootstrap:

protected function _initResourceAutoloader()
{
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
        'basePath'  => APPLICATION_PATH,
        'namespace' => 'Application',
     ));

     $autoloader->addResourceType( 'model', 'models', 'Model');
     return $autoloader;
}

答案 1 :(得分:2)

您需要在Bootstrap中设置资源Autoloader,如下所示:

protected function _initResourceAutoloader()
{
     $autoloader = new Zend_Loader_Autoloader_Resource(array(
        'basePath'  => 'path/to/application/directory',
        'namespace' => 'Application_',
     ));

     return $autoloader;
}

有了这个,Zend可以在你的应用程序中加载模块,而不是模型,但是DbTable,Forms,Plugins等。

答案 2 :(得分:2)

在您的bootstrap文件中写下以下内容:

protected function _initDefaultModuleAutoloader()
{ 

    $resourceLoader = new Zend_Application_Module_Autoloader(array(
        'namespace' => '',
        'basePath'  => APPLICATION_PATH,
    ));

    return $resourceLoader;

}
在模型文件夹中

创建新文件并将其命名为“Data.php”

Data.php中的

声明了这样的类:

class Model_Data extends Zend_Db_Table_Abstract {.....}

您现在可以像这样实例化您的数据模型:

$data = new Model_Data();
祝你好运: - )

答案 3 :(得分:0)

在你的申请中你应该有 autoloadernamespaces.0 = 'Application'代替 appnamespace

然后你的模型将在

  

/library/Application/Model/Data.php

但为什么不在建议的应用程序结构中使用默认的“models”文件夹。

答案 4 :(得分:0)

我忘记将文件扩展名.php添加到文件中,以防其他人犯同样的错误