我接管了使用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