2016-06-14 4 views
5

arbeite ich zusammen mit @Jeffrey_way Reihe von Laracasts Many to Many Relations (With Tags)BadMethodCallException mit Meldung 'Call to undefined Methode Illuminate Database Abfrage Builder :: toArray()'

Unten ist der Code, den ich in CMD geschrieben haben, mit Laravel Tinker:

nach der letzten Zeile der Code ausgeführt wird ($article->tags()->toArray();

Obwohl alles scheint in Ordnung zu sein, wi mein Code th aber immer noch bekomme ich Fehler folgende:

BadMethodCallException with message 'Call to undefined method Illuminate\Database\Query\Builder::toArray()' 

jede Hilfe wäre sehr willkommen :)

Antwort

4

Wenn Sie relationale Daten tatsächlich "erhalten" möchten, setzen Sie keine Klammern um tags. Das funktioniert ganz gut:

$article->tags->toArray(); 

Sie Klammern setzen, wenn Sie brauchen, um „Abfrage“ zu dieser Sammlung (Ex-Sync, Speicher, befestigen.).

Referenz: https://laravel.com/docs/5.1/eloquent-relationships#many-to-many

+0

Danke Yigit Ich fügte Klammern von meinem eigenen dummen Kopf hinzu: p obwohl es nicht im Trainingsvideo war – Hazmat

+0

Gern geschehen. Viel Spaß mit Laravel :) – YigitOzkavci

1

dies stattdessen versuchen:

$article->tags()->all()->toArray(); 

die tags() Basiswert ist wahrscheinlich ein Query\Builder Objekt, das darstellt, eine Abfrage, die noch nicht ausgeführt wurde. Stattdessen benötigen Sie ein Collection-Objekt, das eine Abfrage ausgeführt hat, auf der toArray() aufgerufen werden soll. ->all() ist ein solcher Aufruf, der einen Abfragegenerator in eine Auflistung konvertiert, indem die Abfrage tatsächlich ausgeführt wird.

+0

jetzt bekomme ich diesen Fehler: 'BadMethodCallException mit Meldung 'Call to undefined Methode Illuminate \ Database \ Abfrage \ Builder :: alle()'' – Hazmat

+0

OK try get() statt all() . Das sollte funktionieren. – delatbabel

+0

Abhängig von Ihrer Version von Laravel kann all() entweder eine Sammlung oder ein Array zurückgeben. Wenn es ein Array zurückgibt, dann brauchen Sie das -> toArray() Bit überhaupt nicht. – delatbabel

Verwandte Themen