在Laravel DB select函数中从MySql获取特定列值

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)

Ale*_*nin 5

最好的方法是使用Query Builder或Eloquent并使用它而不是get():

->pluck('pincode')->toArray();
Run Code Online (Sandbox Code Playgroud)