So führen Sie Laravel-Objekte im Controller zusammen
Lesezeit: 3 Minuten
sehummel
Ich habe einen Controller, in dem ich Daten aus mehreren Tabellen mit parallelen Strukturen kombinieren möchte. Was ich am Ende haben möchte, ist ein Objekt, das ich vom Controller zurückgeben kann, damit ich es in Backbone analysieren kann.
Mir wurde von einem anderen Beitrag auf StackOverflow gesagt, dass dies in PHP 5.3+ funktioniert. Dies gibt jedoch den folgenden Fehler in Laravel zurück:
UnexpectedValueException: The Response content must be a string or object implementing
__toString(), "object" given.
Wie implementiere ich diese Methode in Laravel? Beide $mc und sm gültige Objekte in Laravel zurückgeben.
Ich benutze gerade Laravel 4 alpha. Ich werde auf die Beta upgraden, wenn sie heute oder am Montag herauskommt oder wann immer sie herauskommt.
– sehummel
11. Januar 2013 um 17:54 Uhr
Ich habe versucht, eine separate Klasse mit einem Leerzeichen zu erstellen __toString() Methode darin, weiß aber nicht, wo ich sie in Laravel 4 speichern soll.
– sehummel
11. Januar 2013 um 18:07 Uhr
Es sieht so aus, als ob die Klasse in die geht vendor Mappe
– sehummel
11. Januar 2013 um 18:28 Uhr
Was ist der Pfad zu Eloquent von der vendors Mappe?
Das funktioniert ein Laravel 4 und scheint sowohl Arrays als auch Sammlungen zu handhaben.
In meinem Szenario frisst es einige Zeilen nach der Sammlungszusammenführung auf.
– Ali Gajani
2. März 2015 um 17:46 Uhr
Verwendet Ihre Sammlung Strings als Schlüssel? Collection::merge verwendet das array_merge von PHP, das String-Schlüssel, aber keine Integer-Schlüssel überschreibt. Wenn dies ein Problem darstellt, können Sie die Laravel-Sammlung jederzeit unterklassen, um die Implementierung zu überschreiben.
– trm42
3. März 2015 um 8:12 Uhr
In meinem Fall nur die $other_collection bleibt und die $collection verschwindet. Warum???
– Pathos
6. Juni 2016 um 18:09 Uhr
@AliGajani, ja, das tut es. Wenn ein Zeichenfolgenschlüssel in den angegebenen Elementen mit einem Zeichenfolgenschlüssel in der ursprünglichen Sammlung übereinstimmt, überschreibt der Wert des angegebenen Elements den Wert in der ursprünglichen Sammlung. Wenn die Schlüssel der angegebenen Elemente jedoch numerisch sind, werden die Werte an das Ende der Auflistung angehängt. Schau es dir hier an: laravel.com/docs/5.7/collections#method-merge
– Allan Mwesigwa
4. Oktober 2018 um 19:46 Uhr
Was Sie hier tun können, ist, die Arrays der beiden Abfrageergebnisse zusammenzuführen und dann die Antwort mit der JSON-Ausgabe wie unten gezeigt zu verwenden.
Ich benutze gerade Laravel 4 alpha. Ich werde auf die Beta upgraden, wenn sie heute oder am Montag herauskommt oder wann immer sie herauskommt.
– sehummel
11. Januar 2013 um 17:54 Uhr
Ich habe versucht, eine separate Klasse mit einem Leerzeichen zu erstellen
__toString()
Methode darin, weiß aber nicht, wo ich sie in Laravel 4 speichern soll.– sehummel
11. Januar 2013 um 18:07 Uhr
Es sieht so aus, als ob die Klasse in die geht
vendor
Mappe– sehummel
11. Januar 2013 um 18:28 Uhr
Was ist der Pfad zu Eloquent von der
vendors
Mappe?– sehummel
11. Januar 2013 um 18:48 Uhr