雄辩只获得一列作为数组

如何在 Laravel 5.2中使用雄辩只获得一列作为一维数组?

我试过了:

$array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray();

但这个是二维数组:

array(2) {
[0]=>
array(1) {
["word_one"]=>
int(2)
}
[1]=>
array(1) {
["word_one"]=>
int(3)
}
}

但我想得到的是:

array(2) {
[0]=>2
[1]=>3
}
196737 次浏览

你可以使用 pluck方法:

Word_relation::where('word_one', $word_id)->pluck('word_two')->toArray();

要了解更多关于集合中可用的方法的信息,您可以查看 Laravel 文件

如果收到多个条目,则正确的方法称为 清单

    Word_relation::select('word_two')->where('word_one', $word_id)->lists('word_one')->toArray();

我认为你可以通过使用下面的代码来实现它

Model::get(['ColumnName'])->toArray();

我遇到了这个问题,我想我应该澄清一下,在 Laravel 5.2中,一个雄辩的构建器对象的 list ()方法被贬值了,而被 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');

简而言之,可以这样做:

Model::pluck('column')

其中模型是模型,如 User模型和列作为列名,如 id

如果你愿意的话

User::pluck('id') // [1,2,3, ...]

& 当然你可以有其他的条款,比如 where条款