Ich habe zwei Modelle Post
und Comment
; Viele Kommentare gehören zu einem einzigen Beitrag. Ich versuche, auf alle Kommentare zuzugreifen, die mit einem Beitrag als Array verknüpft sind.
Ich habe folgendes, das eine Sammlung gibt.
$comments_collection = $post->comments()->get()
Wie würde ich daraus $comments_collection
ein Array machen? Gibt es eine direktere Möglichkeit, über beredte Beziehungen auf dieses Array zuzugreifen?
\Illuminate\Contracts\Support\Arrayable
, werden sie auch rekursiv in Arrays konvertiert. Das schließt eloquente Modelle ein.->toArray()
konvertiert die Sammlung nicht in ein Array, sondern konvertiert den gesamten Inhalt in Arrays, einschließlich der Elemente der Sammlung.->all()
sollte die akzeptierte Antwort sein.toArray()
ist gut dafür. Außerdem habe ich die Antwort mit Dokumentation aktualisiert.Use-
all()
Methode - dient zur Rückgabe von Sammlungsgegenständen:/** * Get all of the items in the collection. * * @return array */ public function all() { return $this->items; }
quelle
Versuche dies:
Dies kann Ihnen bei der toArray () -Methode in Sammlungen helfen
quelle
Sie können so etwas tun
$collection = collect(['name' => 'Desk', 'price' => 200]); $collection->toArray();
Die Referenz lautet https://laravel.com/docs/5.1/collections#method-toarray
Ursprünglich von der Laracasts-Website https://laracasts.com/discuss/channels/laravel/how-to-convert-this-collection-to-an-array
quelle
Verwenden Sie
collect($comments_collection)
.Andernfalls versuchen Sie
json_encode($comments_collection)
, zu json zu konvertieren.quelle
Versuchen Sie , die Funktion im Array wie folgt zu sammeln :
Diese Methoden können Ihnen helfen
toArray () mit collect ()
quelle