2017-09-21 3 views
0

Ich versuche, eine verschachtelte Beziehung abgefragt werden und die Anzahl der entfernten Modell Zählung immer, ich dies auf eine Variable umzuwandeln, aber es ist nicht passiert:Wie Laravel Erhebungsmethoden verwenden

$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(); 
    }); 

Als ich versuchen zu dd($companies) oder sogar return $companies I nULL-Werte erhalten in jedem Array-Index platziert

Null values in array keys

Aber wenn ich dd($company) tun innen verwandeln

->transform(function ($company) { 
    $company->contacts_association_count = $company->interactionSummaries 
     ->pluck('interaction.contacts_association_count') 
     ->collapse() 
     ->sum(); 
    dd($company); 
}); 

ich die einzige Sammlung erhalten, die meine Anfrage heißt es läuft richtig:

single instance

Wenn ich Teil entfernen verwandeln und einfach die Sammlung erhalten:

$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() 

Ich erhalte die gewünschte Ausgabe, aber ich weiß nicht, was es nach der Ausführung der Transformation passiert. In der Tat ist es nicht zupfen und addieren die Summe, wie ich alle 0 in den Zählungen bekomme.

collection count

Ich habe sie mit rot markiert. Hilf mir dabei

Antwort

2

Ich denke, Sie fehlen eine return Anweisung in der Transformationsverschluß.

+0

Ich habe die Frage aktualisiert, die Sammlung tut nicht die Summe wie gewünscht. –

+0

Also, was hast du? Konnten Sie es beheben? –

0

Sie müssen zurückgeben $ Unternehmen Anweisung in transform.

+1

Ihre Antwort ist nicht sehr klar. Wo sollte das im Code stehen? Bitte lesen Sie die SO-Richtlinien vor dem Posten. – sparkplug

Verwandte Themen