CakePHP分页顺序不适用于SELECT .. AS ..字段

时间:2013-07-08 22:11:12

标签: php cakephp cakephp-2.0

CakePHP 2.x

我在排序包含生成SELECT .. AS语句的数据库字段的分页数据时遇到问题。

尝试对所选字段的别名进行排序会自动转换为原始字段名称,从而无法对SUM()字段等进行排序。

代码:

[...]
$paginate['fields'] = array('SUM(Item.count) AS count');
$paginate['order'] = array('count' => 'DESC');
[...]

SQL生成:

SELECT Item.count AS count FROM items ORDER BY Item.count

我的期待:

SELECT Item.count AS count FROM items ORDER BY count

非常欢迎任何解决此问题的帮助。

1 个答案:

答案 0 :(得分:2)

在你的情况下,我会使用虚拟字段:

$this->Item->virtualFields['count'] = 'SUM(Item.count)';

在paginate()调用之前的控制器中或通过模型本身设置。

但是你不是错过了一个小组声明吗?