在新服务器上从CakePHP 2.1返回结果中缺少模型

时间:2012-04-10 19:37:01

标签: cakephp cakephp-2.1

我们的网站在旧服务器上运行良好,但我们最近将其移至新服务器,并立即将网站上的所有内容搞砸了(即无法找到它在视图中查找的数据)。

经过进一步调查,之前返回的内容如下:

$articles[0]['Article']['title']

现在回来了:

$articles[0][0]['title']

起初,我们被告知PDO没有安装(或者已经损坏或者其他东西),但我们反复使用PDO重新构建Apache,并且它正在为PHP和MySQL显示PDO。

我试过搜索,但要么我正在寻找错误的东西,要么那里没有好的信息。可能导致此问题和/或我们如何解决问题的任何想法?


修改

它在更新之前也在此服务器上运行,将其更新为5.3(不确定上一版本是什么)

修改2

根据建议,我将数据源更改为HpMysql这使其工作。它没有回答我的问题,因为我认为它是一个临时修复 - 我仍然想知道问题是什么,以及如何解决它而不必使用这种解决方法。

1 个答案:

答案 0 :(得分:1)

通过原创海报(我)回答:

根据我们的服务器人员说,“有两种方法可以加载PDO。第一种方法是使用easyapache安装PDO php扩展。第二种是通过PECL安装PDO。看来有问题的模块是不同的。“

显然,这台服务器上有PECL而不是普通的easyapache PDO。当他删除它,并使用easyapache PDO重新启动/重置它时,一切都很顺利。

所以 - 听起来像CakePHP需要“正常”的PDO。

神秘解决了。

如果您有PECL,则可以使用此解决方法:

在Datasource文件夹中创建一个文件“HpMysql.php”并添加此代码/类:https://github.com/lorenzo/HipHop/blob/master/Model/Datasource/Database/HpMysql.php

将您的database.php'datasource'更改为'HpMysql'


不同的问题:(原来是相同的答案):

$this->Auth->login() creates correct query that returns 1 row, but fails IF check (server specific issue)