搜尋

首頁  >  問答  >  主體

laravel5.2為什麼查詢結果不是二維陣列呢?

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

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

用這兩種方式查詢後為什麼圖片中得到的是個一維數組呢?一維數組中為什麼是物件?用原生查詢得到的是二維數組 這個結果為什麼不是二維數組呢?

#
曾经蜡笔没有小新曾经蜡笔没有小新2806 天前868

全部回覆(2)我來回復

  • 阿神

    阿神2017-06-06 09:56:43

    以下為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物件一樣。

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-06 09:56:43

    雷雷

    回覆
    0
  • 取消回覆