Laravel - 获取没有表列名称的DB结果

时间:2017-03-23 13:54:35

标签: laravel laravel-4.2

我希望结果只包含Laravel 4.2中没有表列名的值。例如,

MultiIndex

结果是

$recs = DB::table('table_name')
        ->select('id', 'title')
        ->get();

但我希望只有结果而不是列名,比如

array(2) {
  [0]=>
  object(stdClass)#863 (2) {
    ["id"]=>
    int(2)
    ["title"]=>
    string(8) "my title"
  }
  [1]=>
  object(stdClass)#862 (2) {
    ["id"]=>
    int(3)
    ["title"]=>
    string(10) "my title 2"
  }
}

是的,我可以通过循环结果并创建没有列名的新数组来实现。但有没有办法用Laravel以这种方式获得结果?

4 个答案:

答案 0 :(得分:3)

尝试

$recs = DB::table('table_name')->pluck('id', 'title');
dd($recs->all());

答案 1 :(得分:1)

您可以使用map()array_values()方法:

$recs->map(function($i) {
    return array_values((array)$i);
})

我不确定Laravel 4.2,但我刚测试过它,它在Laravel 5.3中完美运行。如果它在4.2中不起作用,请使用原生array_map()函数。

答案 2 :(得分:1)

Reference

尝试$recs->flatten()->all()

<强>更新

由于您的$recs看起来像是错误中的数组。尝试转换为collection。我希望这将适用于v4.2

$recsCollection = new \Illuminate\Database\Eloquent\Collection($recs);
$recsCollection->flatten()->all();

答案 3 :(得分:0)

DB::table('table_name')->all()->lists('id', 'title')->toArray()

Referance: Retrieving A List Of Column Values