Ich versuche, mehrere Objekte zu verschmelzen (wie Quittungen, Berichte, usw.) mit .Zusammenführen mehrerer Objekte, die gleiche ID verwendet
Dies ist der Code, den ich verwendet:
$receipts = Receipt::all();
$reports = Report::all();
$collection = $receipts->merge($reports);
Dies ist das Ergebnis:
Die obige Abbildung zeigt zwei Elemente, aber das dritte Element fehlt, weil es die gleiche ID (id: "1") wie die erste. Was ich versuche, ist es, alle drei als eine Sammlung darzustellen.
EDIT:
Ich brauche die Ergebnisobjekte zu sein (Sammlung), weil ich auch den Code auf meiner Ansicht verwenden, wo ich die Klasse überprüfen, um zu bestimmen, was angezeigt werden soll. Außerdem verwende ich diese Funktion, um die Objekte in der Sammlung zu sortieren.
$collection->sort(function($a, $b)
{
$a = $a->created_at;
$b = $b->created_at;
if ($a === $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
Es gibt keinen Grund, warum diese Zusammenführung nicht funktionieren sollte. Die Sammlung hängt nicht von den Eigenschaften der Elemente ab. Unter der Haube ist 'merge()' nur eine 'array_merge' von arrayfähigen Elementen.Wie sieht das Berichtsobjekt aus? – tomvo