Comment retourner un tableau au lieu d'une collection dans Laravel?
Dans Laravel est-il possible de sélectionner qu'un seul champ et de retour que comme un jeu/tableau.
Par exemple, considérons le modèle Foo
qui est liée à la table foos
qui a champ id
, a
, b
, c
.
Examiner les données d'exemple suivantes:
(1, 10, 15, 20)
(1, 12, 15, 27)
(1, 17, 15, 27)
(1, 25, 16, 29)
(1, 28, 16, 40)
Maintenant, si je voulais créer une requête qui renvoie toutes les valeurs de a
où b
est 15
, je pouvais le faire comme ceci:
Foo::select('a')->where('b', 15)->get();
Sera toutefois de retour éloquent de la collection.
Plutôt comment puis-je retourner au lieu d'un tableau comme ceci:
[10, 12, 17]
OriginalL'auteur Yahya Uddin | 2016-03-08
Vous devez vous connecter pour publier un commentaire.
Suffit d'utiliser
pluck()
et->toArray()
:Laravel de l'arracher() la méthode.
Laravel de la méthode toArray() .
Oui, vous devez utiliser arracher() pour sélectionner une colonne spécifique. J'ai édité ma réponse
Juste essayé et il fonctionne de la manière que vous voulez avec les arracher (ou des listes, parce que les listes() est un alias de l'arracher()) et toArray()
OriginalL'auteur Mushr00m
Ne
Cela vous donnera un tableau d'id. par exemple, [2, 3, 5]
lists
etall
moyennelistes vous permet de convertir le résultat d'une collecte et d' tous va faire un tableau. mais avec laravel 4 vous ne pouvez utiliser listes et il vous permet de convertir vos résultats dans un tableau.
donc je ne peux pas écrire aussi
Foo::select('a')->where('b', 15)->all();
`Pas de. Avec ce que vous voulez, vous ne pouvez pas utiliser de sélectionner et de tous. Vous obtiendrez une collection à la place. mais si vous modifiez le tout pour obtenir()->toArray (), vous obtiendrez un tableau associatif. Donc le mieux est d'utiliser listes et tous
Le
lists
méthode est juste un alias pourpluck
comme @Mushr00m très bien illustrée dans sa réponse. Le Laravel Documentation explique clairement quelles sont les méthodes d'une Collection propose et ce qu'ils font.OriginalL'auteur oseintow
Les listes méthode est obsolète et arracher besoin d'un certain nombre de paramètres donc, si vous voulez obtenir tous attribués sous forme de tableau, utiliser de cette façon.
Foo::select('a')->where('b', 15)->get()->all();
OriginalL'auteur Moeen Basra