【发布时间】:2021-03-22 22:37:43
【问题描述】:
我想在我的模型中包含另一个模型包含的完整模型条目集,而不是它们的数量。我可以通过将“大小”字段添加到结果集中来做到这一点,但我想在查询中这样做,因为我想对结果进行分页和排序。我正在使用这段代码,但由于某种原因,如果第一个计数不为零,则两个计数字段具有相同的值,即第二个计数字段的值。
$query = $this->Users->find('all')
->contain(['Likes','Favs']);
$query
->select(['like_count' => $query->func()->count('Likes.id')])
->leftJoinWith('Likes')
->group(['Users.id'])
->autoFields(true);
$query
->select(['fav_count' => $query->func()->count('Favs.id')])
->leftJoinWith('Favs')
->group(['Users.id'])
->autoFields(true);
$this->paginate['sortWhitelist'] = [
'name',
'email',
'last_login',
'fav_count',
'like_count',
];
我想知道为什么会发生这种情况以及是否有任何其他方法可以做我尝试做的事情,那就是拥有('name'、email、'last_login'、带有用户 ID 的 Likes 中的条目数量, Favs 中具有用户 ID 的条目数量)。我试过用join()来做左连接,但一直没能得到我想要的结果。
【问题讨论】:
标签: mysql join cakephp count cakephp-3.x