Laravel - Wann ->get()
Ich bin verwirrt, wenn ->get()
in Laravel...
E. G. DB::table('users')->find(1)
nicht braucht ->get() zum abrufen der Ergebnisse, auch nicht User::find(1)
Den laravel docs sagen "...führen Sie die Abfrage mithilfe der get-oder der ersten Methode..."
Ich habe gelesen, die Fließend Query Builder und Eloquent docs aber nicht verstehen, wenn die Verwendung der get() benötigt wird...
Danke für die Hilfe
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da die
find()
Funktion wird immer auf dem primären Schlüssel für die Tabelle, die die Notwendigkeit fürget()
ist nicht notwendig. Denn man kann nicht Grenzen Sie Ihre Auswahl nach unten und das ist, warum es immer nur versuchen, um den Datensatz und gibt ihn zurück.Aber wenn Sie mit der Fluent-Abfrage-generator können Sie nest Bedingungen als solche:
Dieser ermöglicht das hinzufügen von Bedingungen im gesamten code, bis Sie wirklich wollen, um Sie zu Holen, und dann würden Sie das nennen die
get()
Funktion.get()
nur nicht erforderlich, wenn Sie->find()
... ich finde keine docs auf, wenn es die Benutzung erforderlich ist... Auch ist ->get() Einsatz nicht erforderlich in Eloquenter oder get() Verwendung der gleichen in Eloquenter und der Fluent-Abfrage-generator? Danke für die Hilfe ![ ][1] [1]: i6.minus.com/jLj4oKVAVXP8l.pngget()
. Zum Beispiel können Sie nicht verwenden Sie es mitall()
da Sie weiß es werden alle Datensätze zurückgeben, und keine weiteren Bedingungen angewendet werden können. Es ist das gleiche mitfind()
da weiß man, dass es nur versuchen zu Holen einen Datensatz.find(n)
rufen Sie eine Zeile auf der Grundlage des Primärschlüssel, die ist 'n'.first()
rufen Sie die ersten Zeile unter allen Zeilen, die die where-Klauseln verwendet werden.get()
rufen Sie alle Zeilen passen, dass die where-Klauseln. (Bitte beachten Sie, dass die Schleifen sind erforderlich, um Zugriff auf alle Zeilen oder erhalten Sie einige Fehler).find
gibt eine Zeile aus der Datenbank und stellen es als fließend /eloquent Objekt. z.B.SELECT * FROM users WHERE id = 3
entsprichtDB::table('users')->find(3);
get
gibt ein array von Objekten. z.B.SELECT * FROM users WHERE created_at > '2014-10-12'
entsprichtDB::table('users')->where('created_at', '>', '2014-10-12')->get()
wird ein array zurückgeben von Objekten, die Benutzer, wo die erstellten im Feld neuer ist als 4014-10-12.Die get () - Methode geben Sie alle Werte aus der Datenbank, dass die Erfüllung Ihrer Parameter, wo als erste() bekommt man nur das erste Ergebnis. Sie suchen() und findOrFail (), wenn Sie sind auf der Suche nach einem Schlüssel. Dies ist, wie ich Sie verwende:
Wenn ich möchte alle Daten aus einer Tabelle verwende ich die all () - Methode
Modell::all();
Wenn ich will, zu finden, indem Sie den Primärschlüssel:
Modell::find(1)->erste();
Oder
Modell::findOrFail(1)->erste();
Dies funktioniert, wenn es eine Zeile, die mit einem primär-Schlüssel ein. Es sollte nur abrufen eine Zeile so benutze ich den ersten() statt get(). Denken Sie daran, wenn Sie gelöscht werden, die Zeile, verwendet der Taste 1, oder nicht haben, Daten in Ihre Tabelle, Ihre finden(1) fehlschlagen wird.
Wenn ich bin auf der Suche nach bestimmten Daten in einer where-Klausel:
Modell::where('Feld', '=', 'Wert')->get();
Wenn ich möchte, dass nur der erste Wert der Daten, die in der where-Klausel.
Modell::where('Feld', '=', 'Wert')->first();