web-dev-qa-db-fra.com

Laravel 5.2 - La méthode pluck () retourne un tableau

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 en pluck. 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) }
42
Limon Monte

L'alternative actuelle pour pluck() est value().

68
user3158900

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é.

4
NuOne T Attygalle

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();
0
Pillai