Collections jsou výkonný, fluent wrapper kolem polí, který poskytuje desítky řetězitelných metod pro elegantní práci s daty (map, filter, reduce, groupBy atd.). Výsledky Eloquent dotazů se vrací jako Collections, takže je používáte neustále.
Collections jsou výkonný, fluent wrapper kolem polí, který poskytuje desítky řetězitelných metod pro elegantní práci s daty (map, filter, reduce, groupBy atd.). Výsledky Eloquent dotazů se vrací jako Collections, takže je používáte neustále.
$collection = collect([1, 2, 3, 4, 5]);
$result = $collection
->filter(fn($n) => $n % 2 === 0) // [2, 4]
->map(fn($n) => $n * 10) // [20, 40]
->values(); // re-index
$collection->sum(); // 15
$collection->avg(); // 3
$collection->max(); // 5
Collection obaluje pole a nabízí fluent, řetězitelné API — mnohem výraznější než ruční funkce pro pole a řetězitelné pro čisté datové pipeline.
$users = User::all(); // returns a Collection of User models
$users->where('active', true) // filter
->sortBy('name')
->map(fn($u) => $u->name)
->take(10);
$users->pluck('email'); // extract one field → a collection of emails
$users->groupBy('role'); // group by a field → role => [users]
$users->keyBy('id'); // index by id
Protože Eloquent vrací Collections, můžete elegantně transformovat výsledky dotazů v PHP — nicméně u velkých datových sad preferujte databázové dotazy namísto načtení všeho a filtrování v PHP.
map, filter, reduce, each transform/iterate
pluck, keyBy, groupBy, partition restructure
sum, avg, min, max, count aggregate
sort, sortBy, reverse, unique order/dedup
first, last, take, skip, chunk slice
contains, every, some, where query
implode, flatten, collapse, merge combine
Collections jsou důležitá, všudypřítomná funkce Laravel — činí práci s poli a daty elegantní a výraznou, a protože výsledky Eloquent dotazů jsou Collections, používáte je neustále při práci s databázovými daty, což z nich činí každodenní, nezbytné znalosti.
Jádřovou hodnotu představuje fluent, řetězitelné API: místo podrobného, imperativního manipulování s poli vám Collections umožňují vyjádřit transformace dat (filtrování, mapování, seskupování, agregace, řazení) jako čitelné, skládatelné řetězce metod — hlavní přínos pro produktivitu a čitelnost, který ztělesňuje elegantní styl Laravel.
Pochopení bohaté sady metod (map/filter/reduce pro transformaci, pluck/groupBy/keyBy pro restrukturalizaci, agregační a třídící metody) vám umožní čistě zpracovávat data a je nezbytné pro efektivní práci s výsledky Eloquent (které vrací Collections, které pak transformujete).
Znalost Collections — jejich fluent API, šíře dostupných metod a toho, že je Eloquent používá — je základní pro produktivní vývoj s Laravel, protože manipulace s daty je neustálá a Collections jsou způsob, jak ji Laravel činí elegantní. (Jednu důležitou praktickou výhradu: pro filtrování/řazení velkých datových sad preferujte provádění práce v databázovém dotazu spíše než načítání všech záznamů do Collection a zpracování v PHP — Collections slouží k manipulaci s daty v paměti, ne jako náhrada za efektivní dotazy.) Plynulost s Collections je charakteristická pro idiomatický, produktivní kód Laravel.