Collections su moćan, fluent wrapper oko nizova, koji pružaju deseci lančanih metoda za elegantno rada s podacima (map, filter, reduce, groupBy, itd.). Rezultati Eloquent upita vraćaju se kao Collections, pa ih koristiš konstantno.
Collections su moćan, fluent wrapper oko nizova, koji pružaju deseci lančanih metoda za elegantno rada s podacima (map, filter, reduce, groupBy, itd.). Rezultati Eloquent upita vraćaju se kao Collections, pa ih koristiš konstantno.
$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 omotava niz i nudi fluent, lančani API — mnogo izrazitiji od ručnih array funkcija, i lančan za čiste data pipeline-e.
$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
Budući da Eloquent vraća Collections, možeš elegantno transformirati rezultate upita u PHP-u — ali za velike skupove podataka, preferiraj database upite umjesto dohvaćanja svega i filtriranja u PHP-u.
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 su važna, sveprisutna Laravel značajka — čine rad s nizovima i podacima elegantnim i izrazitim, te budući da Eloquent rezultati upita su Collections, koristiš ih konstantno kada rukuješ podacima iz baze podataka, čineći ih svakodnevnim, bitnim znanjem.
Kljucna vrijednost je fluent, lančani API: umjesto opširnog, imperativnog rukovanja nizovima, Collections ti dozvoljava izraziti transformacije podataka (filtriranje, mapiranje, grupiranje, agregiranje, sortiranje) kao čitljive, kompozitne lance metoda — velik prinos produktivnosti i čitljivosti koji воплощава Laravel-ov elegantan stil.
Razumijevanje bogatog skupa metoda (map/filter/reduce za transformaciju, pluck/groupBy/keyBy za restrukturiranje, agregacijske i sortirne metode) omogućava ti čist rad s podacima i nužno je za učinkovit rad s Eloquent rezultatima (koji vraćaju Collections koje zatim transformiraš).
Poznavanje Collections — njihov fluent API, širina dostupnih metoda, i činjenica da Eloquent koristi — je temeljno za produktivnu Laravel razvoj, budući da je manipulacija podacima stalna i Collections su kako Laravel to čini elegantnim. (Jedna važna praktična napomena: za filtriranje/sortiranje velikih skupova podataka, preferiraj obavljanje posla u database upitu umjesto dohvaćanja svih zapisa u Collection i obrada u PHP-u — Collections su za manipulaciju podacima u memoriji, ne zamjena za učinkovite upite.) Tečnost s Collections je obilježje idiomatskog, produktivnog Laravel koda.