I found this类似的问题,但我的问题不同。
我将 CakePHP 2.2 应用程序移至另一台服务器。迁移前不存在任何问题。迁移后大多数事情都运行良好。我可以访问我的大部分数据库表等。但是当我尝试访问我的其中一个表时,我收到此错误:
"Error 500: Table stats for model Stat was not found in datasource default."
为了解决这个问题,我检查了这个文件夹:
“/应用程序/tmp/缓存/模型”
在该文件夹中,我的每个表都有一个文件
- myapp_cake_model_default_mydatabase_table1
- myapp_cake_model_default_mydatabase_table2
- myapp_cake_model_default_mydatabase_table3
ETC..
但没有统计表文件。这会是问题吗?或者我该如何解决这个问题?
(“/app/tmp/cache/models”文件夹的权限为755)
In 数据库.php我有这个:
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'myuser',
'password' => 'mypass',
'database' => 'mydatabase',
'prefix' => '',
'encoding' => 'utf8',
);
Edit:
正如我在 thaJeztah 的回答评论中指出的,删除里面的所有文件后app/tmp/cache/persistent
问题解决了。 CakePHP 创建了新的模型缓存文件并且它起作用了。一年后我发现了真正的问题。问题在于设置蛋糕模型文件的清除持续时间。我将清除缓存设置为 +999 天,因此不会重新生成模型文件。在进行模型更改时,您可以设置较低的值来清除模型缓存:
Cache::config('_cake_model_', array(
'engine' => "File",
'prefix' => "myapp_". 'cake_model_',
'path' => CACHE . 'models' . DS,
'serialize' => ($engine === 'File'),
'duration' => "+999 days"
));