如何使用 laravel collection 辅助方法?
How to use laravel collection helper methods?
我正在尝试在 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
并将其添加到单个公司 collection 为此,我使用 pluck
、collapse
和sum
方法,但我不知道它是否按要求计算。以下为截图:
我得到 collection 的列表如下:
现在我得到了属性:
现在关系数据:
现在交互数据,计数所属:
为此我尝试了:
$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
帮我解决这个问题。谢谢
我认为你的问题是 ->collapse()
在 ->pluck('interaction.contacts_association_count')
之后看到你的示例 如果你将 collapse()
应用到平面,你应该有一个平面数组作为 [1,2,3,4,5]
array it returns a void array []
and a void array 的总和为 0
$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;
});
我希望它有用...祝你好运!
我正在尝试在 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
并将其添加到单个公司 collection 为此,我使用 pluck
、collapse
和sum
方法,但我不知道它是否按要求计算。以下为截图:
我得到 collection 的列表如下:
现在我得到了属性:
现在关系数据:
现在交互数据,计数所属:
为此我尝试了:
$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
帮我解决这个问题。谢谢
我认为你的问题是 ->collapse()
在 ->pluck('interaction.contacts_association_count')
之后看到你的示例 如果你将 collapse()
应用到平面,你应该有一个平面数组作为 [1,2,3,4,5]
array it returns a void array []
and a void array 的总和为 0
$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;
});
我希望它有用...祝你好运!