我做的事情是
在models目录中创建Data.php并添加这个简单的类
<?php class Application_Model_Data{ }//Application for appnamespace
然后我尝试从索引控制器索引操作
加载此类(通过创建实例)$ data = new Application_Model_Data();
但是当我在这个级别测试它时会出现错误
致命错误:在C:\ Zend \ ... \ IndexController.php中找不到类'Application_Model_Data'
问题
请帮助我一开始就被困住了,谢谢
答案 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添加到文件中,以防其他人犯同样的错误