在我的php项目中定义了不同的模型和modelMappers。
我的文件夹结构如下
-application
--models
---DbTable
----modelName
---modelMapperName
modelName.php
class Application_Model_DbTable_ModelName extends Zend_Db_Table_Abstract{
}
modelMapper.php
class Application_Model_ModelMapper
{
}
每当我尝试通过在控制器中创建我的mapper实例来访问我的数据库中的值时,我会收到消息找不到Application_Model_DbTable_ModelName的适配器
我认为这可能是自动加载器的问题,并在引导程序中添加了以下代码,
$loader = new Zend_Application_Module_Autoloader(array(
'namespace' => 'Application',
'basePath' => APPLICATION_PATH
));
$autoloader = Zend_Loader_Autoloader::getInstance();
$autoloader->setFallbackAutoloader(true);
return $loader;
但它仍然没有用,有谁能帮我弄明白我哪里出错了?
谢谢。答案 0 :(得分:1)
此错误与数据库初始化有关...
您必须在application.ini中配置数据库适配器:
resources.db.adapter = "pdo_mysql"
resources.db.params.host = "localhost"
resources.db.params.username = "user"
resources.db.params.password = "password"
resources.db.params.dbname = "db"
或者您也可以在引导程序文件中配置数据库适配器:
$db = Zend_Db::factory("pdo_mysql", $params);
Zend_Db_Table::setDefaultAdapter($db);
答案 1 :(得分:0)
由于变量APPLICATION_PATH返回应用程序文件夹的完整路径,请尝试仅命名类
Model_DbTable_ModelName
答案 2 :(得分:0)
我发现我试图访问的变量没有以下划线开头,并且创建的模型的大写问题导致了问题。
谢谢大家的帮助