【发布时间】:2015-04-07 19:40:06
【问题描述】:
在 CakePHP 3 中,我有一个名为“文章”的模型和一个名为“主题”的字段,但在尝试检索 100 个最常用文章主题的列表时遇到了障碍。
以下代码生成的 SQL 选择了所有可能的字段,不是COUNT(*):
$articles->find('list', [
'keyField' => 'subject',
'valueField' => 'COUNT(*)'
])
->group('subject')
->order(['COUNT(*)' => 'DESC'])
->limit(100)
->toArray();
然后我想起了"CakePHP’s ORM offers abstraction for some commonly used SQL functions."。但是下面的代码导致“错误:函数名必须是字符串”:
$countFunc = $this->find()->func()->count('*');
$articles->find('list', [
'keyField' => 'subject',
'valueField' => $countFunc
])
->group('subject')
->order([$countFunc => 'DESC'])
->limit(100)
->toArray();
【问题讨论】:
标签: php cakephp cakephp-3.0