laravel5.2为什么查询结果不是二维数组呢?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-06-06 09:54:43
[PHP讨论组]
$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对象一样。

淡淡烟草味
//返回数组 laravel 默认返回的为对象
$res=DB::table('qq')->get()->toarray;
dump($res);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号