我直接通过查询创建表。我只想导入一些数据。因此,我执行一个动态构建的查询,并尝试在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