Ich versuche mein Projekt L5.1 -> L5.2 zu aktualisieren. In Upgrade-Anleitung Es gibt eine Sache, die mir nicht klar ist:
Die
lists
-Methode für die Collection, den Query Builder und die Eloquent-Abfrage Builder-Objekte wurden inpluck
umbenannt. Die Methodensignatur Bleibt das selbe.
Das ist in Ordnung, das Umbenennen von Refactoting von lists()
in pluck()
ist kein Problem. Was aber mit der nützlichen pluck()
-Methode, die in L5.0 und L5.1 war?
Aus der 5.0 Dokumentation :
Eine einzelne Spalte aus einer Zeile abrufen
$name = DB::table('users')->where('name', 'John')->pluck('name');
Was ist die Alternative für die alte pluck()
-Methode in L5.2?
UPDATE:
Beispiel:
var_dump(DB::table('users')->where('id', 1)->pluck('id'));
L5.1:
// int(1)
L5.2:
// array(1) { [0]=> int(1) }
Die aktuelle Alternative für pluck()
ist value()
.
laravel Zupfen liefert ein Array
wenn Ihre Anfrage lautet:
$name = DB::table('users')->where('name', 'John')->pluck('name');
dann ist das Array so (Schlüssel ist der Index des Elements. Auto inkrementierter Wert):
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
aber wenn dir das gefällt:
$name = DB::table('users')->where('name', 'John')->pluck('name','id');
dann ist der Schlüssel der tatsächliche Index in der Datenbank.
key||value
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
sie können einen beliebigen Wert als Schlüssel festlegen.
In Laravel 5.1+ können Sie den Wert () anstelle von zupfen verwenden.
Zum ersten Auftreten können Sie entweder verwenden
DB::table('users')->value('name');
oder verwenden,
DB::table('users')->where('id', 1)->pluck('name')->first();