J'essaie de mettre à niveau mon projet L5.1 -> L5.2. Dans guide de mise à niveau il y a une chose qui n'est pas claire pour moi:
La méthode
lists
sur la collection, le générateur de requêtes et la requête Eloquent Les objets de générateur ont été renommés enpluck
. La signature de la méthode reste le même.
Ce n'est pas grave, renommer le refactoting de lists()
en pluck()
n'est pas un problème. Mais qu'en est-il de la méthode utile pluck()
qui était en L5.0 et L5.1?
À partir de la documentation 5.0 :
Récupérer une seule colonne d'une ligne
$name = DB::table('users')->where('name', 'John')->pluck('name');
Quelle est l'alternative pour l'ancienne méthode pluck()
dans L5.2?
METTRE À JOUR:
Exemple:
var_dump(DB::table('users')->where('id', 1)->pluck('id'));
L5.1:
// int(1)
L5.2:
// array(1) { [0]=> int(1) }
L'alternative actuelle pour pluck()
est value()
.
laravel pluck renvoie un tableau
si votre requête est:
$name = DB::table('users')->where('name', 'John')->pluck('name');
alors le tableau est comme ceci (key est l'index de l'item. valeur auto incrémentée):
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
mais si vous aimez ça:
$name = DB::table('users')->where('name', 'John')->pluck('name','id');
alors la clé est l'index réel dans la base de données.
key||value
[
1 => "name1",
2 => "name2",
.
.
.
100 => "name100"
]
vous pouvez définir n'importe quelle valeur comme clé.
Dans Laravel 5.1+, vous pouvez utiliser la valeur () au lieu de plumer.
Pour obtenir la première occurrence, vous pouvez soit utiliser
DB::table('users')->value('name');
ou utiliser,
DB::table('users')->where('id', 1)->pluck('name')->first();