2017-10-19 28 views
1

から項目を削除します。Laravelは現在、私はこのコレクションを持っているコレクション

return $items->map(function ($item) use ($location, $amount) { 
    if($item->is_active) { 
     return $this->calculate($item, array_values($location)); 
    } 
}) 

を文がfalseの場合、私は、コレクションから項目を削除したいとき。私はこれをどのようにするべきですか?

はすでに試した:

return $items->map(function ($item, $itemKey) use ($location, $amount, $items) { 
    if($item->is_active) { 
     return $this->calculate($item, array_values($location)); 
    } 

    $items->forget($itemKey); 
}) 

しかし、それは動作していないのですか?

答えて

2

条件に応じてコレクションからアイテムを削除するには、filterまたはrejectメソッドを使用できます。

あなたのコードは次のようになります。

return $items->filter(function ($item) { 
    return $item->is_active; 
})->map(function ($item) use ($location, $amount, $items) {   
    return $this->calculate($item, array_values($location)); 
}) 
関連する問題