CakePHP查找返回缺少字段的结果

时间:2013-05-15 15:12:35

标签: php cakephp find cakephp-2.0

我需要获取User信息以及何时致电

$this->User->find('first', array('conditions' => array('User.id' => $user_id)));

结果只包含部分字段。

我目前更新了数据库架构。在开发服务器上它运行正常并返回所有字段但在生产服务器上缺少这些新字段。这些服务器具有完全相同的配置。

我已经尝试删除app/tmp/cache/models的内容,我正在使用File引擎进行缓存。

schema.php文件是最新的,app/tmp/cache/models中的文件内容表明这些字段存在,但我无法在生产服务器上检索它们。唯一的区别可能是数据库和调试级别。我已经尝试复制数据库并将其与dev服务器一起使用,并且运行良好。

我显然无法在生产服务器上将debug设置为2。

你们中有没有人遇到过任何类似的行为?

PS我正在使用Cake 2.3.3

3 个答案:

答案 0 :(得分:8)

答案实际上非常简单。我不仅要删除app/tmp/models的内容,而且实际上它的工作原理是删除app/tmp/persistent的内容。

答案 1 :(得分:3)

我的答案与@ Elwhis略有不同。我在 Cake 2.4.5 上。对我来说,没有app/tmp/models目录或app/tmp/persistentmodelspersistent都在app/tmp/cache下。就像@Elwhis一样,查看app/tmp/cache/models目录显示缺少字段,因此令人困惑。

要修复,我删除了app/tmp/cache/persistent中的所有文件。请注意,如果您删除目录本身,您将从CakePHP收到500错误。

我建议将该目录中的文件删除添加到部署过程中。

答案 2 :(得分:0)

  

Elwhis :答案实际上非常简单。我不仅要删除app / tmp / models的内容,而且要使它真正起作用的是删除app / tmp / persistent的内容。

这仍然适用于CakePHP 3,它解决了我的问题!

更新1

下面有一种使用Bake CLI工具清理缓存的简单方法:

Cache Shell Command

要清除一个缓存配置:

  

bin /蛋糕缓存清除

要清除所有缓存配置:

  

bin / cake缓存clear_all