Introduzione
Quando recuperi più modelli con Eloquent, il risultato viene restituito comeIlluminate\Database\Eloquent\Collection.Poiché estende
Illuminate\Support\Collection, puoi usare i metodi della collezione di base così come sono.
Metodi disponibili
Eloquent\Collection eredita tutti i metodi della collezione di base e aggiunge inoltre metodi specifici per i modelli.
append / withoutAppends / setAppends
Puoi manipolare gli attributi aggiuntivi (appends) usati in fase di serializzazione a livello dell’intera collezione.
contains / diff / except / intersect / only
Prendendo come riferimento istanze di modelli o chiavi primarie, esegui verifica di appartenenza, differenza, intersezione, esclusione ed estrazione.
find / findOrFail
Cerca un modello per chiave primaria nella collezione già recuperata.
fresh
Ricarica ciascun modello della collezione con lo stato più recente dal database.
load / loadMissing
Puoi caricare le relazioni con eager loading su una collezione già recuperata.
modelKeys
Ottiene l’elenco delle chiavi primarie dei modelli nella collezione.
makeVisible / makeHidden / mergeVisible / mergeHidden / setVisible / setHidden
Puoi regolare a livello di collezione gli attributi visibili e nascosti in fase di serializzazione.
partition
Divide in due Eloquent\Collection in base alla condizione; il contenitore esterno viene restituito come Illuminate\Support\Collection.
toQuery
Crea una query whereIn sulle chiavi primarie dei modelli recuperati; puoi usarla per aggiornamenti o eliminazioni in blocco.
unique
Rimuove i modelli duplicati che condividono la stessa chiave primaria.
Conversione da collezione Eloquent a collezione di base
collapse, flatten, flip, keys, pluck e zip restituiscono Illuminate\Support\Collection.Inoltre, se il risultato di
map non contiene modelli Eloquent, viene convertito in una collezione di base.
Collezioni personalizzate
Se vuoi usare una classe di collezione dedicata a un modello, il metodo più chiaro consiste nell’usare l’attributo#[CollectedBy].
Attributo #[CollectedBy] (consigliato)
Metodo newCollection() (alternativa)
newCollection() oppure #[CollectedBy], nei contesti in cui normalmente verrebbe restituita Eloquent\Collection verrà invece restituita la collezione personalizzata.Se vuoi applicarlo a tutti i modelli, definisci
newCollection() in un modello base comune.
Pagine correlate
Collezioni
Rivedi prima le operazioni di base di
Illuminate\\Support\\Collection.Introduzione a Eloquent
Ripassa le basi di modelli e query prima di usare le collezioni Eloquent.