我在我的 ArticlesController 中试图显示按文章数量 DESC 排序的热门文章海报列表。该表还需要显示用户拥有的总点数(无顺序)。当我自己计算文章总数或积分总和时,它工作正常,但是当我尝试同时计算这两个数字时,它返回的每个值都不正确。例如,如果用户在文章表中有 5 条记录,在积分表中有 10 条记录(假设总和为 50 分,每个 5 分),那么它将输出用户有 50 篇文章和 250 分。
$this->paginate = array(
'fields' => array(
'User.username', 'User.online',
),
'conditions' => array(
'Article.page_id' => $page_id,
'Article.status_id BETWEEN ? AND ?' => array(2,6),
'Point.page_id' => $page_id,
),
'link' => array(
'Article' => array(
'fields' => array(
'Article.id', 'COUNT(Article.id) AS articles'
)
),
'Point' => array(
'fields' => array(
'Point.id', 'SUM(Point.amount) AS page_points'
)
),
),
'group' => 'User.id',
'order' => 'articles DESC, User.username ASC',
'limit' => 35,
'contain' => array(
'Avatar' => array(
'fields' => array(
'Avatar.file'
)
),
) // contain
);
$this->set('users', $this->paginate('User'));