$res=DB::select('select * from qq'); var_dump($res); $res=DB::table('qq')->get(); var_dump($res);
用这两种方式查询后为什么图片中得到的是个一维数组呢?一维数组中为什么是对象呢?用原生查询得到的是二维数组 这个结果为什么不是二维数组呢?
以下为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对象一样。
雷雷
运行原生的SQL查询,获取的是一个以数组形式的结果集,详见文档。
使用查询构造器运行SQL语句,获取的是一个Collection对象,详见文档。
运行原生SQL语句获取的是一个一维数组且包裹着一个个对象,并非二维数组。
使用查询构造器获取的是一个Collection对象,里面也是一个一维数组包裹着一个个对象。那为何要返回Collection对象呢,因为其内置了很多有用且优雅的方法。就像Eloquent默认返回Collection对象一样。
雷雷