首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CakePHP3:如何获取关联的计数

CakePHP3:如何获取关联的计数
EN

Stack Overflow用户
提问于 2016-04-29 09:01:49
回答 2查看 1.6K关注 0票数 1

我不明白如何指定一个查询来获取关联的计数。

在我的例子中,敏捷主题属于Agplan。

在DB中,4个敏捷主题属于Agplan id 22,1个敏捷主题属于Agplan id 23。

目前,我编写了以下查询,该查询在第一个Agplan数组的Ag题材数组中返回一个5的计数,为第二个查询返回一个空的Agthemes数组。

代码语言:javascript
复制
$agplans = $this->Agplans->find()
   ->contain([
           'Agthemes' => function ($q) {
               return $q->select(
                   [
                       'id',
                       'agplan_id',
                       'count' => $q->func()->count('*')
                   ]);
           }
       ])
   ->where([
            'site_id' => $site->id
      ])
   ->all();

如何正确编写此查询?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-29 09:42:00

您还必须将敏捷主题分组。

代码语言:javascript
复制
->contain([
    'Agthemes' => function ($q) {
        return $q->select(
            [
                'id',
                'agplan_id',
                'count' => $q->func()->count('*')
           ])
           ->group(['agplan_id']);
       }
   ])
票数 4
EN

Stack Overflow用户

发布于 2018-10-30 16:16:03

hasMany实例的另一种方式。注意leftJoin而不是包含。

代码语言:javascript
复制
$userTableQuery = $UsersTable->find();
$data = $userTableQuery
    ->select([
        'Users.id',
        'order count' => $userTableQuery->func()->count('Orders.id')
    ])
    ->leftJoinWith('Orders')
    ->group('Users.id');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36934034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档