我直接通過查詢創建表。我只想導入一些數據。因此,我執行一個動態構建的查詢,並嘗試在Component-class中執行此查詢。 (我用隨機存在的模型來執行這個查詢有沒有更好的理由?)創建表後,CakePHP無法找到表
$query= "CREATE TABLE IF NOT EXISTS testerdbs (
'Ü1' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü2' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü3' int(3) DEFAULT NULL,
'Ü4' varchar(6) COLLATE utf8_swedish_ci DEFAULT NULL,
'Ü5' date DEFAULT NULL
)"
$data = ClassRegistry::init('import_files');
$data->query($query);
這工作正常。 在我想訪問控制器中創建的表的同一個請求中。
App::import('Model', "testerdb");
//$this->loadModel("testerdb");
$newTable = ClassRegistry::init("testerdb");
echo '<pre>', print_r($newTable->getColumnTypes()), '</pre>';
如果我試圖在同樣的要求來執行此我總是得到錯誤:
Error: Table testerdbs for model testerdb was not found in datasource default.
如果我再次做同樣的要求,一切工作正常... 我谷歌大約一個小時似乎蛋糕緩存模型。如果我再次執行此請求,請將所有表重新緩存,然後再找到我的新表。所以我希望在相同的請求中加載或導入創建的表,但我不工作。
是否有另一種方法來加載表?我的錯誤在哪裏?
感謝您的幫助!
請閱讀cakephp的命名約定http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasandbelongstomany-habtm – Aryan