Comment obtenir une seule colonne sous la forme d'un tableau de dimensions dans laravel 5.2 en utilisant éloquent?
J'ai essayé:
$array = Word_relation::select('Word_two')->where('Word_one', $Word_id)->get()->toArray();
mais celui-ci lui donne comme tableau de 2 dimensions comme:
array(2) {
[0]=>
array(1) {
["Word_one"]=>
int(2)
}
[1]=>
array(1) {
["Word_one"]=>
int(3)
}
}
mais je veux l'obtenir comme:
array(2) {
[0]=>2
[1]=>3
}
Vous pouvez utiliser la méthode pluck
:
Word_relation::where('Word_one', $Word_id)->pluck('Word_two')->toArray();
Pour plus d'informations sur les méthodes disponibles pour une utilisation avec collection, vous pouvez consulter le Laravel Documentation .
Si vous recevez plusieurs entrées, la méthode correcte est appelée lists .
Word_relation::select('Word_two')->where('Word_one', $Word_id)->lists('Word_one')->toArray();
Je suis tombé sur cette question et je pensais préciser que la méthode lists () d'un objet constructeur éloquent était dépréciée dans Laravel 5.2 et remplacée par pluck ().
// <= Laravel 5.1
Word_relation::where('Word_one', $Word_id)->lists('Word_one')->toArray();
// >= Laravel 5.2
Word_relation::where('Word_one', $Word_id)->pluck('Word_one')->toArray();
Ces méthodes peuvent également être appelées sur une collection par exemple
// <= Laravel 5.1
$collection = Word_relation::where('Word_one', $Word_id)->get();
$array = $collection->lists('Word_one');
// >= Laravel 5.2
$collection = Word_relation::where('Word_one', $Word_id)->get();
$array = $collection->pluck('Word_one');
Cela peut être fait en bref comme:
Model::pluck('column')
où modèle est le modèle tel que User
modèle & colonne comme nom de colonne tel que id
si tu fais
User::pluck('id') // [1,2,3, ...]
& bien sûr, vous pouvez avoir d’autres clauses comme la clause where
avant de cueillir