CakePHP找不到新的表格列

时间:2014-05-11 14:25:03

标签: cakephp

我最近在我的用户'中添加了一个新专栏。 table(first_name),但是当我使用

$this->User->find('all')

它不会返回数组中的first_name。

但是,如果我使用

$this->User->find('all', array('fields' => 'first_id'))

它返回正常。

我已经清除了tmp / cache / model中的缓存,但问题仍然存在

为什么我遇到这个问题?

2 个答案:

答案 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);
}