Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CakePHP中创建临时表并将其作为模型加载_Php_Sql_Cakephp_Temp Tables - Fatal编程技术网

在CakePHP中创建临时表并将其作为模型加载

在CakePHP中创建临时表并将其作为模型加载,php,sql,cakephp,temp-tables,Php,Sql,Cakephp,Temp Tables,我的计划是使用$this->Model->query()创建一个临时表;方法,然后将其作为模型加载,但我在保留“缺少数据库表”时出错。打开debug到第二级显示临时表已成功完全创建,但由于某些原因,当我尝试将其作为模型加载时,它不起作用。看起来cake甚至没有尝试查看表是否存在,因为没有显示“SHOW FULL COLUMNS FROM…”查询。不确定如何强制cake检查其存在 $tmpModel = 'tempModel'; $tmpTable = 'temp_models'; $this-

我的计划是使用$this->Model->query()创建一个临时表;方法,然后将其作为模型加载,但我在保留“缺少数据库表”时出错。打开debug到第二级显示临时表已成功完全创建,但由于某些原因,当我尝试将其作为模型加载时,它不起作用。看起来cake甚至没有尝试查看表是否存在,因为没有显示“SHOW FULL COLUMNS FROM…”查询。不确定如何强制cake检查其存在

$tmpModel = 'tempModel';
$tmpTable = 'temp_models';

$this->Model->query('CREATE TEMPORARY TABLE `'.$tmpTable ... );
$this->loadModel($tmpModel);

提前谢谢。

好的,我四处看看,找到了一个有效的解决方案。 问题是Cake已经在页面加载时加载了模型缓存,所以使用它们作为表存在的引用;“它创建了新的modelCache,允许loadModel脚本成功运行

$tmpModel = 'tempModel';
$tmpTable = 'temp_models';

$this->Model->query('CREATE TEMPORARY TABLE `'.$tmpTable ... );
App::import('Model', $tmpModel);
$this->loadModel($tmpModel);

无论如何谢谢

$tmpModel='TempModel';//CamelCase

还可以尝试,
ClassRegisty::init($tmpModel);


最后一个问题可能是缓存。但在谷歌搜索了一个小时后,不要这么认为。。终于找到了一种方法,可以在临时表上显示模型,它工作起来很有魅力

可能是“创建临时表”?谢谢,这是一个输入错误,因为我正在尝试普通表,看看它们是否能以这种方式工作。(它们不能)你能修改一下你的问题,让那些会在一段时间内检查它的人觉得它是合理的吗?从某种意义上说,到底什么是问题以及下面的解决方案。谢谢。谢谢,这些事情一旦你知道了,就可以节省这么多时间。虽然这在理论上可以回答问题,但在这里包括答案的基本部分,一个d提供链接以供参考。