首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用laravel收集助手的方法?

如何使用laravel收集助手的方法?
EN

Stack Overflow用户
提问于 2017-09-22 03:12:50
回答 1查看 305关注 0票数 1

我试图在laravel-5.4上构建一个小型应用程序,其中我有一个关系查询,如下所示:

代码语言:javascript
复制
$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,并将其添加到单独的公司集合中--为此,我使用了pluckcollapsesum方法,但我不知道它不是按需要计算的。以下是截图:

我得到的收藏清单如下:

现在我得到了以下属性:

现在是关系数据:

现在,交互数据,其中计数属于:

为此,我试了一下:

代码语言:javascript
复制
$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。

帮我解决这个问题。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-22 03:35:39

我相信您的问题是->collapse(),在->pluck('interaction.contacts_association_count')之后看到您的示例,您应该有一个平面数组作为[1,2,3,4,5],如果将collapse()应用于平面数组,它将返回一个空数组[],并且一个空数组的和为0。

代码语言:javascript
复制
$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;
    });

我希望能成功..。祝好运!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46356250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档