我正在尝试查询嵌套关系并获取远程模型计数的计数,我将其转换为变量但它没有发生:
$companies = Company::where('is_client', '=', 1)
// load count on distant model
->with(['interactionSummaries.interaction' => function ($q) {
$q->withCount(['contactsAssociation' => function ($q) {
$q->whereHas('company', function ($q) {
$q->where('type', 'like', 'Research');
});
}]);
}])
->get()
->transform(function ($company) {
$company->contacts_association_count = $company->interactionSummaries
->pluck('interaction.contacts_association_count')
->collapse()
->sum();
});
当我尝试dd($companies)
甚至return $companies
在每个数组索引中放置空值时
但是当我在dd($company)
里面做变换时
->transform(function ($company) {
$company->contacts_association_count = $company->interactionSummaries
->pluck('interaction.contacts_association_count')
->collapse()
->sum();
dd($company);
});
我得到一个集合,它表明我的查询运行正常:
如果我删除转换部分并简单地获取集合:
$companies = Company::where('is_client', '=', 1)
// load count on distant model
->with(['interactionSummaries.interaction' => function ($q) {
$q->withCount(['contactsAssociation' => function ($q) {
$q->whereHas('company', function ($q) {
$q->where('type', 'like', 'Research');
});
}]);
}])
->get()
我得到了想要的输出,但我不知道转换执行后发生了什么。事实上,它不是采摘和添加总和,因为我得到的计数都是 0。
我用红色标记了它们。帮我解决这个问题