CakePHP 3-依赖深度关联

CakePHP 3-依赖深度关联,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我有三个表用户,活动和视频 他们的关系就像 users->hasMany('campaigns'); campaigns->hasMany('videos'); 我想要的是选择所有用户并统计他们的视频记录 我可以根据特定的表进行筛选,就像我可以在$this->videos->find()上计算视频记录一样 但是如何计算CakePHP 3中的深度关联?例如,在用户上? 我想要什么 User object => [ 'email' => 'email@example

我有三个表
用户
活动
视频

他们的关系就像

users->hasMany('campaigns');
campaigns->hasMany('videos');
我想要的是选择所有用户并统计他们的
视频
记录

我可以根据特定的表进行筛选,就像我可以在
$this->videos->find()
上计算
视频
记录一样

但是如何计算CakePHP 3中的深度关联?例如,在
用户上

我想要什么

User object => [
    'email' => 'email@example.com'
    'name' => 'My Name'
    'post_videos_count' => 10
]
User object => [
    'email' => 'email2@example.com'
    'name' => 'User 2'
    'post_videos_count' => 50
]
其中
email
name
字段来自
Users
post\u videos\u count
包含相关视频的计数。

可能&:

可能&:


使用计数器缓存行为。这是一个高效且最简单的解决方案


使用计数器缓存行为。这是一个高效且最简单的解决方案


不,我不想统计
活动
的数量,但想统计
视频
哪些属于
活动
哪些属于
用户
。不,我不想统计
活动
的数量,而是
视频
哪些属于
活动
哪些属于
用户
。可能是同样的可能你给出了一个如何在controllerDid中实际使用它的示例你真的阅读了我链接的页面吗?我不这么认为,因为这显然是不同的。阅读手册!甚至我的回答都是行为。你能举个例子说明如何在controllerDid中实际使用它吗?你真的阅读了我链接的页面吗?我不这么认为,因为这显然是不同的。阅读手册!甚至我的回答都是行为。
$query = $users->find()->contain(['Campaigns' => ['Videos' => function ($q) {
    return $q->count('Video.id');
}]]);