Ho letto Code Bright di Dayle Rees per ulteriori informazioni su Eloquent Collection
s utilizzato in Laravel. Ha fatto qualche altra ricerca, ma non ho trovato la risposta che stavo cercando.Come inserire un oggetto (tipo di oggetto Modello) in oggetto di raccolta in Laravel con un numero di indice specifico?
Desidero inserire un oggetto (Model
tipo oggetto) in un oggetto Collection
in una posizione specifica.
Ad esempio:
Questa è la collezione restituita
Illuminate\Database\Eloquent\Collection Object
(
[0] => Attendance Object
([present_day] => 1)
[1] => Attendance Object
([present_day] => 2)
[2] => Attendance Object
([present_day] => 4)
[3] => Attendance Object
([present_day] => 5)
)
Come potete vedere sopra [present_day]
hanno un valori che vanno da 1 to 5
, ma il valore, 3
manca nella sequenza. Ora, quello che voglio veramente fare è che voglio inserire esplicitamente un nuovo Attendance Object
nella posizione dell'oggetto di raccolta di [2]
numero di indice/posizione, quindi spingendo il resto dell'oggetto di partecipazione. Sto davvero lottando per farlo bene. Come posso fare questo per fare in precedenza oggetto di raccolta per assomigliare a qualcosa come di seguito:
Illuminate\Database\Eloquent\Collection Object
(
[0] => Attendance Object
([present_day] => 1)
[1] => Attendance Object
([present_day] => 2)
[2] => Attendance Object // This is where new object was added.
([present_day] => 3)
[4] => Attendance Object
([present_day] => 4)
[5] => Attendance Object
([present_day] => 5)
)
io ci credo sia alcuni metodi che vi permettono di fare esattamente come questo se fosse array. Poiché si tratta di un Collection
, non sono sicuro di come farlo.
Nota: Non voglio convertirlo in array e fare l'inserimento all'interno dell'array. Per qualche ragione, voglio avere questa uscita rigorosamente nell'oggetto Collection
.
L'oggetto di raccolta ha un metodo add, lo utilizza e quindi riordina la raccolta in questo modo; '$ collection-> sortBy (function ($ model) {return $ model-> present_day;});' Questo quindi riordina la collezione in base a ciò che si desidera. –
Non ho ancora provato la soluzione. Solo leggendo il tuo commento, sono sicuro che dovrebbe funzionare. In realtà, un bel modo per aggirare il mio problema. –
@MattBurrow L'ho fatto. Ha funzionato perfettamente !! –