如何使用雄辩的方法在laravel 5.2中只将一列作为一维数组?
我试过了:
$array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray();
但是这个给它作为2维数组,如:
array(2) {
[0]=>
array(1) {
["word_one"]=>
int(2)
}
[1]=>
array(1) {
["word_one"]=>
int(3)
}
}
但我希望得到它:
array(2) {
[0]=>2
[1]=>3
}
答案 0 :(得分:118)
您可以使用pluck
方法:
Word_relation::where('word_one', $word_id)->pluck('word_two')->toArray();
有关可用于收集的方法的详细信息,您可以查看Laravel Documentation。
答案 1 :(得分:10)
如果您收到多个条目,则会调用正确的方法lists。
Word_relation::select('word_two')->where('word_one', $word_id)->lists('word_one')->toArray();
答案 2 :(得分:4)
我遇到了这个问题并且认为我会澄清一个雄辩的构建器对象的lists()方法在Laravel 5.2中被折旧并且用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();
也可以在Collection上调用这些方法,例如
// <= 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');
答案 3 :(得分:1)
可以简而言之做到:
Model::pluck('column')
其中model是Model,例如User
model和column作为列名,例如id
如果您这样做
User::pluck('id') // [1,2,3, ...]
&当然,在拔除之前,您还可以使用其他任何子句,例如where
子句
答案 4 :(得分:-2)
我认为你可以通过 Model :: get(['ColumnName']) - &gt; toArray();
来实现它