我有一个名为posts的表,用于存储所有帖子。它有两列“Created”和“Modified”。
以下是我在模型中的查询:
$options = [
'conditions' => [
'circle_id' => $my_circle_list,
'team_id' => $this->current_team_id,
'modified BETWEEN ? AND ?' => [$start, $end],
],
'order' => ['modified'=> 'desc'],
'limit' => $limit,
'fields' => ['post_id'],
];
$res = $this->find('list', $options);
现在我想在顶部和底部编辑最新的帖子是我的mysql转储的内容:
SELECT `Post`.`id` FROM `db`.`posts` AS `Post` WHERE `Post`.`id` IN (125, 124) AND `Post`.`del_flg` = '0' ORDER BY `Post`.`modified` desc LIMIT 20
如果我在我的数据库编辑器中运行此查询,它会给出正确的输出,但在我的控制器中,排序会再次更改,这是我在调试数组值后想到的。
如果有人能告诉我这背后是否有任何具体原因,将会有所帮助。从控制器调用此模型方法是以传统方式完成的。
答案 0 :(得分:0)
在Cake使用生成的SQL查询数据库之后使用$this->find()
时,它会调用模型上的afterFind()
method来操作数据。这是订购被修改的最有可能的地方。