laravel5.2为什么查询结果不是二维数组呢?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-06 09:54:43
0
2
867
$res=DB::select('select * from qq');
var_dump($res);

$res=DB::table('qq')->get();
var_dump($res);

用这两种方式查询后为什么图片中得到的是个一维数组呢?一维数组中为什么是对象呢?用原生查询得到的是二维数组 这个结果为什么不是二维数组呢?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回复(2)
阿神

以下为Laravel 5.4版本的,因为没有使用过5.2版本的Laravel。

运行原生的SQL查询,获取的是一个以数组形式的结果集,详见文档。

$res = DB::select('select * from qq');
dd($res);

/*
 * array:5 [▼
    0 => {#388 ▶}
    1 => {#399 ▶}
    2 => {#400 ▶}
    3 => {#401 ▶}
    4 => {#402 ▶}
    ]
 */

使用查询构造器运行SQL语句,获取的是一个Collection对象,详见文档。

$res = DB::table('qq')->get();
dd($res);

/*
 * Collection {#398 ▼
      #items: array:5 [▼
        0 => {#399 ▶}
        1 => {#400 ▶}
        2 => {#401 ▶}
        3 => {#402 ▶}
        4 => {#403 ▶}
      ]
  }
 */

  • 运行原生SQL语句获取的是一个一维数组且包裹着一个个对象,并非二维数组。

  • 使用查询构造器获取的是一个Collection对象,里面也是一个一维数组包裹着一个个对象。那为何要返回Collection对象呢,因为其内置了很多有用且优雅的方法。就像Eloquent默认返回Collection对象一样。

淡淡烟草味

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板