Collections so zmogljiva, fluent wrapper okrog polj, ki ponujajo ducat verižnih metod za elegantno delo s podatki (map, filter, reduce, groupBy itd.). Rezultati Eloquent poizvedb se vrnejo kot Collections, zato jih konstantno uporabljate.
Collections so zmogljiva, fluent wrapper okrog polj, ki ponujajo ducat verižnih metod za elegantno delo s podatki (map, filter, reduce, groupBy itd.). Rezultati Eloquent poizvedb se vrnejo kot Collections, zato jih konstantno uporabljate.
$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 obdaja polje in ponuja fluent, verižljiv API — veliko bolj izrazit kot ročne funkcije za polja, in verižljiv za čiste podatkovne cevovode.
$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
Ker Eloquent vrača Collections, lahko elegantno transformirate rezultate poizvedb v PHP — vendar za velike nabore podatkov rajši izvedite poizvedbe v podatkovni bazi kot da pridobite vse in filtrirate 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 so pomembna, splošna Laravel funkcionalnost — naredijo delo s polji in podatki elegantno in izrazito, in ker rezultati Eloquent poizvedb so Collections, jih konstantno uporabljate pri obravnavanju podatkov iz baze podatkov, kar jih dela vsakodnevno, bistveno znanje.
Osrednja vrednost je fluent, verižljiv API: namesto besednega, imperativnega manipuliranja s polji, Collections omogočajo, da izrazite transformacije podatkov (filtriranje, preslikovanje, razvrščanje, agregatne funkcije, sortiranje) kot berljive, sestavljive verige metod — velika prednost za produktivnost in berljivost, ki воплощает Laravel-ov eleganten stil.
Razumevanje bogatega nabora metod (map/filter/reduce za transformacijo, pluck/groupBy/keyBy za prestrukturiranje, agregatne funkcije in metode sortiranja) vam omogoča čisto obdelavo podatkov in je potrebno za učinkovito delo z rezultati Eloquent (ki vrnejo Collections, ki jih nato transformirate).
Znanje Collections — njihov fluent API, obseg razpoložljivih metod, in da jih Eloquent uporablja — je temeljno za produktivno Laravel razvojno delo, ker je manipulacija s podatki stalna in Collections so načini, kako Laravel to naredi elegantno. (Ena pomembna praktična opomba: pri filtriranju/sortiranju velikih naborov podatkov rajši to delo izvedite v podatkovni bazi kot da pridobite vse zapise v Collection in jih obdelate v PHP — Collections so za manipulacijo podatkov v spominu, ne zamenjava za učinkovite poizvedbe.) Tekoče znanje Collections je značilnost idiomatskega, produktivnega Laravel koda.