Jedním ze způsobů, jak můžete dosáhnout toho, oč se snažíte, je:
Deal:where('status', 'active')
->get()
->groupBy('type')
->map(function($deal) {
return $deal->take(3);
});
Samozřejmě je potřeba zkontrolovat, zda dotaz vrací null
nebo empty
objektů a mějte na paměti, že dotaz vrací všechny aktivní Deal
(s) (filtrování probíhá na Collection
), což může být neefektivní, pokud existuje mnoho Deal
(s)