我接管了使用Zend MVC和Zend_Db_Table编写的用于数据库访问的应用程序。我想添加一个新表,但得到的错误:Zend_Db_Table未找到基表或视图
Base table or view not found: 1146 Table 'maa_agencies.contact' doesn't exist
然而maa_agcencies.contact非常DOES存在,并且是在同一个DB为被访问的表的其余部分。
这里是我的步骤和代码:
第1步:
创建模型类
文件:应用程序/模型/ DBTABLE/Contact.php
class Model_DbTable_Contact extends Zend_Db_Table_Abstract
{
protected $_name = 'contact';
}
第2步:
以类似的方式实例化类,它在交流中做了十几次ontroller(所有其他表工作)
文件:应用程序/模块/机构/控制器/ IndexController.php(也第3步)
$agency_contact = new Model_DbTable_Contact();
第3步:
写我的数据我的新表($ store_contact是关键=列名值=值assoc命令阵列)
$agency_contact->insert($store_contact);
是否有Zend的一些缓存功能,我不知道的?
我需要做一些特殊的事情来告诉它我添加了一个新表格?
我遇到的所有文档都说这是所有必需的,正如我在文件上面声明的那样,我试图通过访问我的表已经访问同一个数据库中的其他两个表,实际上上面的那一行我实例化我的联系人模型是这种说法,工作正常:
$sm = new Model_DbTable_SentEmail();
名称空间的想法看起来很棒!如果这个系统不是框架的一些混蛋。这是当前工作模式
/**
* @category Model_DbTable
* @package Model_DbTable_States
class Model_DbTable_States extends Zend_Db_Table_Abstract
{
protected $_name = 'state_list';
}
是否有可能是一些评论vodoo,我无法找到在命名空间在所有已注册代码的任何地方。
也许有喜欢重新初始化数据库的方式连接并重建某个隐藏的模式文件?我不会想象它会在每次建立连接时检查数据库模式,因此必须有可以刷新的缓存版本。 – Zjoia