Sha*_*ath 1 php laravel laravel-5 laravel-5.3
如何在Laravel DB select函数中从MySql获取结果后获取特定的列值
下面是我的PHP代码.
$list = DB::select('SELECT DISTINCT a.pincode FROM table_name nvs
JOIN areas a on nvs.area_id = a.id
where nvs.city_id = ?;', [$area_id]);
Run Code Online (Sandbox Code Playgroud)
以下是上述查询的结果.
[
{
"pincode": "560005"
},
{
"pincode": "560006"
}
]
Run Code Online (Sandbox Code Playgroud)
我只需要pincode值而不是键值对.所以我尝试使用以下代码.
return array_column($list->toArray(), 'pincode');
Run Code Online (Sandbox Code Playgroud)
它在数组上调用成员函数toArray().
如何在不使用foreach循环的情况下仅获取值.
回答
我使用下面的代码
$pincode_list = DB::table('table_name as nvs')
->join('areas as a', 'nvs.area_id', '=', 'a.id')
->select('a.pincode')
->where('nvs.city_id', '=', $area_id)
->distinct('a.pincode')->pluck('pincode')->toArray();
Run Code Online (Sandbox Code Playgroud)
结果是:
[
"560067",
"560035"
]
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用Query Builder或Eloquent并使用它而不是get():
->pluck('pincode')->toArray();
Run Code Online (Sandbox Code Playgroud)