Sto tentando di unire più oggetti (come Ricevute, Rapporti, ecc.) Con .Unione di più oggetti che utilizza lo stesso ID
Questo è il codice che ho usato:
$receipts = Receipt::all();
$reports = Report::all();
$collection = $receipts->merge($reports);
Questo è il risultato:
La schermata sopra mostra due elementi, ma il terzo elemento è mancante perché ha lo stesso id (id: "1") come primo. Quello che sto cercando di ottenere è di mostrarli tutti e tre come collezione.
EDIT:
ho bisogno il risultato di essere oggetti (raccolta) perché anche io uso il codice sul mio punto di vista, in cui posso controllare la classe per determinare cosa visualizzare. Inoltre, io uso questa funzione per ordinare gli oggetti nella collezione.
$collection->sort(function($a, $b)
{
$a = $a->created_at;
$b = $b->created_at;
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
Non c'è alcun motivo per cui questa unione non dovrebbe funzionare. La raccolta non dipende da nessuna delle proprietà degli articoli. Under the hood 'merge()' è solo un 'array_merge' di elementi arrayable.Come appare l'oggetto Report? – tomvo