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
非常欢迎任何解决此问题的帮助。
答案 0 :(得分:2)
在你的情况下,我会使用虚拟字段:
$this->Item->virtualFields['count'] = 'SUM(Item.count)';
在paginate()调用之前的控制器中或通过模型本身设置。
但是你不是错过了一个小组声明吗?