我最近在我的用户'中添加了一个新专栏。 table(first_name),但是当我使用
时$this->User->find('all')
它不会返回数组中的first_name。
但是,如果我使用
$this->User->find('all', array('fields' => 'first_id'))
它返回正常。
我已经清除了tmp / cache / model中的缓存,但问题仍然存在
为什么我遇到这个问题?
答案 0 :(得分:1)
每当您更新或编辑数据库时都会发生这种情况。您只需更改调试模式(如果设置为0),然后将其设置为2,反之亦然。你的问题将得到解决。
答案 1 :(得分:0)
您想要在tmp / cache文件夹中刷新模型缓存。
可选地,我发现对我的开发环境有用的是每次我对模型/ db层进行更改时都可以运行实用程序函数。在管理员控制器中,我有一个clearCache函数:
App::uses('Folder', 'Utility');
App::uses('File', 'Utility');
public function clearCache(){
Configure::write('debug', 2);
Cache::clear();
$msg = '';
$models = new Folder('../tmp/cache/models');
if(!$models->delete())
$msg .= 'Could not delete models folder!<br>';
else
$msg .= 'Models folder deleted.<br>';
$models = new Folder();
if($models->create('../tmp/cache/models'))
$msg .= 'New models folder created.<br>';
else
$msg .= 'Could not create new models folder!<br>';
$persistent = new Folder('../tmp/cache/persistent');
if(!$persistent->delete())
$msg .= 'Could not delete persistent folder!<br>';
else
$msg .= 'Persistent folder deleted.<br>';
$persistent = new Folder();
if($persistent->create('../tmp/cache/persistent'))
$msg .= 'New models folder created.<br>';
else
$msg .= 'Could not create new persistent folder!<br>';
$views = new Folder('../tmp/cache/views');
if(!$views->delete())
$msg .= 'Could not delete views folder!<br>';
else
$msg .= 'Views folder deleted.<br>';
$views = new Folder();
if($views->create('../tmp/cache/views'))
$msg .= 'New views folder created.<br>';
else
$msg .= 'Could not create new views folder!<br>';
$this->set('results', $msg);
}