Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用laravel收集方法_Php_Laravel_Laravel 5.4_Laravel Collection - Fatal编程技术网

Php 如何使用laravel收集方法

Php 如何使用laravel收集方法,php,laravel,laravel-5.4,laravel-collection,Php,Laravel,Laravel 5.4,Laravel Collection,我试图查询嵌套关系并获取远程模型计数,我正在将其转换为一个变量,但它没有发生: $companies = Company::where('is_client', '=', 1) // load count on distant model ->with(['interactionSummaries.interaction' => function ($q) { $q->withCount(['contactsAssociation' =>

我试图查询嵌套关系并获取远程模型计数,我正在将其转换为一个变量,但它没有发生:

$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($companys)
或甚至
返回$companys
时,我会在每个数组索引中得到空值

但是当我做
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


我把它们标上了红色。在这个

中帮助我,我想你在转换闭包中缺少了一个返回语句。

我想你在转换闭包中缺少了一个返回语句。

你需要在转换中放入return$company语句。

我更新了这个问题,集合未按要求进行求和。那么您有什么?你能修复它吗?我已经更新了问题,集合没有按预期进行汇总。那么你有什么?你能修好吗?你的答案不是很清楚。这应该放在代码中的什么位置。请在发布前阅读SO指南。您的答案不是很清楚。这应该放在代码中的什么位置。请在发布前阅读SO指南。