我试图查询嵌套关系并获取远程模型计数的计数,我将其转换为变量,但它没有发生:
$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。
我用红色标记了他们。帮帮我吧
答案 0 :(得分:2)
我认为你在转换闭包中缺少return
语句。
答案 1 :(得分:0)
您需要在转换中输入 return $ company 语句。