【发布时间】:2015-04-05 23:28:24
【问题描述】:
我在 CakePHP 中遇到了一个奇怪的错误,我不知道如何弄清楚发生了什么。 我正在使用 Ajax 请求为 dataTable 加载动态数据,它在我的本地主机上完美运行。出于某种原因,当我有多个条目时,我无法让它在我的实时服务器上工作。 调试后发现是find函数不起作用。当我的响应数组中有多个条目时,其中一个数组('SollProject')只是完全为空并且整个脚本停止工作。
这是我的代码:
$project = $this->Project->find("first", array('conditions'=>array('id'=>$project_id) ,
'contain' => array(
'SollProject' => array(
'conditions'=> array(
'SollProject.date >=' => $year.'-01-01',
'SollProject.date <=' => $year.'-12-31'
)
),
'HabenProject'=> array(
'conditions'=> array(
'HabenProject.date >=' => $year.'-01-01',
'HabenProject.date <=' => $year.'-12-31'
)
))));
知道我在这里做错了什么或者为什么它不能在实时服务器上运行吗?如果您想知道,没有 afterFind 方法。
也许我应该提到我已经尝试过错误调试并且我没有收到任何错误消息。我还在我的 sql server 上尝试了相同的 sql 代码,它运行良好。也没有内存问题,因为我使用的内存远远超出了我通常使用的内存,它只是一个 json 响应。 该函数本身也适用于小条目(可能不超过 5 个条目),但只要我在数据库中有更多条目,它就会崩溃。
有趣的是,我可以debug($project['HabenProject']) 显示所有 HabenProject,但如果我尝试 debug($project['SollProject']) 或只是 debug($project),变量只是空的。它甚至没有被声明为数组。只是没有输出。页面的其余部分仍在显示。
【问题讨论】:
-
请发布它构建的查询。
-
在你的布局中使用
<?php echo $this->element('sql_dump'); ?>并复制查询并在mysql上运行它,你会有一个更好的主意。 -
sql_dump 完全为空,查询为 SELECT
SollProject.id,SollProject.date,SollProject.soll_ab,SollProject.haben_ab,SollProject。buchungsbetrag,SollProject。buchungstext,SollProject。belegart,SollProject。belegnummerFROMdb397231557。project_transactionsASSollProjectWHERESollProject。date>= '2015-01-01' ANDSollProject.dateSollProject.soll_ab= (40865) ORDER BYSollProject.date跨度>
标签: php ajax cakephp crash find