Rii*_*iwo 65 laravel eloquent laravel-5.2
如何在laravel 5.2中使用eloquent只获得一列作为一个维数?
我试过了:
$array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray();
Run Code Online (Sandbox Code Playgroud)
但是这个给它作为2维数组,如:
array(2) {
[0]=>
array(1) {
["word_one"]=>
int(2)
}
[1]=>
array(1) {
["word_one"]=>
int(3)
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望得到它:
array(2) {
[0]=>2
[1]=>3
}
Run Code Online (Sandbox Code Playgroud)
Bog*_*dan 143
您可以使用以下pluck方法:
Word_relation::where('word_one', $word_id)->pluck('word_two')->toArray();
Run Code Online (Sandbox Code Playgroud)
有关可用于集合的方法的更多信息,您可以查看Laravel文档.
小智 11
如果您收到多个条目,则正确的方法称为列表.
Word_relation::select('word_two')->where('word_one', $word_id)->lists('word_one')->toArray();
Run Code Online (Sandbox Code Playgroud)
这可以简而言之:
Model::pluck('column')
Run Code Online (Sandbox Code Playgroud)
其中模型是模型,例如User模型和列作为列名称,例如id
如果你这样做
User::pluck('id') // [1,2,3, ...]
Run Code Online (Sandbox Code Playgroud)
& 当然你可以有任何其他条款,比如where在 pluck 之前的条款
我遇到了这个问题,我想我会澄清一个 eloquent builder 对象的 list() 方法在 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();
Run Code Online (Sandbox Code Playgroud)
例如,这些方法也可以在 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');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
90971 次 |
| 最近记录: |