2

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

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

4

1 回答 1

3

在您的情况下,我将使用虚拟字段:

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

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

但是你不是错过了一个团体声明吗?

于 2013-07-08T23:04:13.973 回答