如何使用laravel collection helper方法?

时间:2017-09-22 03:12:50

标签: php laravel laravel-5.4 laravel-collection

我试图在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并将其添加到各个公司集合中为此我使用pluckcollapse和{{1}方法,但我不知道它没有按要求计算。以下是截图:

我收集如下列表:

list of company

现在我得到了属性:

Attributes

现在是关系数据:

relational data

现在计数属于的交互数据:

Interaction data

所以为此,我尝试了:

sum

但这不是计算计数,所有计数都是0

帮助我解决这个问题。感谢

1 个答案:

答案 0 :(得分:2)

我认为,如果您将->collapse()应用于平面阵列,->pluck('interaction.contacts_association_count') [1,2,3,4,5]您应该将平面数组设为collapse(),那么您的问题是[]看到您的示例返回void数组$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; }); ,void数组的总和为0

Hello World

我希望它有效......祝你好运!