我正在尝试laravel-5.4
在我有这样的关系查询的地方构建一个小型应用程序:
$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', 'Investor');
});
}]);
}])
->get();
现在我想收集contact_association_counts
从查询中生成的所有数据并将其添加到单个公司集合中,为此我正在使用pluck
,collapse
和sum
方法,但我不知道它没有按预期计算。以下是截图:
我得到的集合列表如下:
现在我得到了属性:
现在关系数据:
现在交互数据,计数所属的位置:
所以为此我尝试了:
$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', 'Investor');
});
}]);
}])
->get()
->transform(function ($company) {
$company->contacts_association_count = $company->interactionSummaries
->pluck('interaction.contacts_association_count')
->collapse()
->sum();
return $company;
});
但这不是计算计数,所有计数都为 0
帮我解决这个问题。谢谢