【发布时间】:2012-07-26 19:43:21
【问题描述】:
所以这是我的最新一期: 我在我的 Cakephp 控制器中运行这个查询:
$acctRenewLast2Entries = $this->AccountRenew->find
(
'all',
array
(
'conditions' => array('Acc_Id' => $plan["Account"]["Acc_Id"]),
'order' => array('AccR_Id' => 'DESC')
)
);
我希望这条 SQL 语句有 4 条记录。相反,在我的控制器中运行调试时,这是我为上面的每一行得到的(见第一条记录):
app/controllers/admins_controller.php (line 2584)
1
app/controllers/admins_controller.php (line 2584)
Array
(
[AccountRenew] => Array
(
[AccR_Id] => 470
[AccR_Date] => 2012-06-23 01:21:11
[AccR_Hstart_Date] => 2012-06-23 01:21:11
[AccR_Hend_Date] => 2012-08-23 01:21:11
[AccR_End_Date] => 2013-08-23 01:21:11
[AccR_Status] => PAID
[AccR_Reason] => RENEWAL
[Inv_Id] => 467
[Inac_Id] =>
[Acc_Id] => 196
[AccT_Id] => 44
[Amount] => 16
[AccP_Id] => 0
)
)
app/controllers/admins_controller.php (line 2584)
Array
(
[AccountRenew] => Array
(
[AccR_Id] => 465
[AccR_Date] => 2012-06-23 01:17:35
[AccR_Hstart_Date] => 2012-06-23 01:17:35
[AccR_Hend_Date] => 2012-07-23 01:17:35
[AccR_End_Date] => 2012-07-23 01:17:35
[AccR_Status] => PAID
[AccR_Reason] => RENEWAL
[Inv_Id] => 462
[Inac_Id] =>
[Acc_Id] => 196
[AccT_Id] => 41
[Amount] => 16
[AccP_Id] => 0
)
)
app/controllers/admins_controller.php (line 2584)
Array
(
[AccountRenew] => Array
(
[AccR_Id] => 269
[AccR_Date] => 2012-06-06 10:15:56
[AccR_Hstart_Date] => 2012-06-06 17:15:56
[AccR_Hend_Date] => 2012-06-20 17:15:56
[AccR_End_Date] => 2012-06-20 10:15:56
[AccR_Status] => TRIAL
[AccR_Reason] =>
[Inv_Id] => 0
[Inac_Id] =>
[Acc_Id] => 196
[AccT_Id] => 0
[Amount] => 0
[AccP_Id] => 0
)
)
现在,当我运行 sql_dump 时,我得到了正在运行的以下查询:
SELECT `AccountRenew`.`AccR_Id`, `AccountRenew`.`AccR_Date`, `AccountRenew`.`AccR_Hstart_Date`, `AccountRenew`.`AccR_Hend_Date`, `AccountRenew`.`AccR_End_Date`, `AccountRenew`.`AccR_Status`, `AccountRenew`.`AccR_Reason`, `AccountRenew`.`Inv_Id`, `AccountRenew`.`Inac_Id`, `AccountRenew`.`Acc_Id`, `AccountRenew`.`AccT_Id`, `AccountRenew`.`Amount`, `AccountRenew`.`AccP_Id` FROM `account_renews` AS `AccountRenew` WHERE `Acc_Id` = 196 ORDER BY `AccR_Id` DESC 4 4
当我在 MySQL 中运行上述查询时,我确实得到了所有 4 条记录,包括数组中显示为 1 的第一条记录(在我的文章顶部)。
我真诚地希望有人可以提供帮助,因为我在过去的 1.5 天里没有任何运气来解释为什么 MySQL 会提取完整的集合,但 Cake 似乎只检索最后 3 个,并用数组替换第一条记录“1”。
提前致谢!
【问题讨论】:
-
您尝试使用“列表”而不是“全部”吗?
-
是的,我做到了。当我这样做时,我会返回一个索引数组,例如: Array ("480","470","465","269") 并且我很难将这些值从数组中取出。例如,我似乎无法将此数组的第二个值 (470) 分配给变量。有什么线索吗?
-
我也试过 findAllBy 方法,结果和上面一样(第一条记录没有显示)....
-
如果查询返回 4 行并且您看到 3(调试输出的代码不在问题中,这没有帮助) - 几乎可以肯定某些应用程序逻辑(在您的模型中) files) 正在处理删除/替换其中一行的结果。
标签: cakephp cakephp-1.3