2017-11-17 28 views
2

各ループ内のプロパティの合計を取得しようとしています。ここに私のコードです:各ループ内で合計を計算するLaravel

$client_systems_count = 0; 
    $client->accounts->each(function ($account) use ($client_systems_count) { 
     dd($account->systems->count()); 
     $client_systems_count += $account->systems->count(); 
    }); 
    dump($client_systems_count); 

なぜそれが動作しないのですか? 私は、ループ内の$ client_systems_count変数をコレクション内の次の要素に移動するたびに変更しても、それが初期値にリセットされると仮定します。だから、システム全体の数を取得する正しいアプローチは何ですか?

答えて

7

これはあなたの問題です:

$client->accounts->each(function ($account) use ($client_systems_count) { 

関数が実行されるたび、それは外側のスコープの$client_systems_countを使用しています。 0です。

、その値を変更するために、あなたは参照することにより、それを渡す必要があります。

$client->accounts->each(function ($account) use (&$client_systems_count) { 
               ^here 
関連する問題