Jednym ze sposobów osiągnięcia tego, co próbujesz zrobić, jest:
Deal:where('status', 'active')
->get()
->groupBy('type')
->map(function($deal) {
return $deal->take(3);
});
Oczywiście musisz sprawdzić, czy zapytanie zwraca null
lub empty
obiektów i pamiętaj, że zapytanie zwraca wszystkie aktywne Deal
(s) (filtrowanie odbywa się w Collection
), co może być nieefektywne, jeśli istnieje wiele Deal
(y)