首页 > 解决方案 > 在laravel中获取结果作为对象而不是数组

问题描述

我有这个简单的 sql 查询

$orders=DB::table('carts')
                - 
 ->join('prod_suppliers','carts.prod_supplier_id','=','prod_suppliers.id')
 ->join('tickets','carts.ticket_id','=','tickets.id') 
 ->distinct()                                
  ->select(
     'suppliers.id as supplier_id',
     'suppliers.supplier',
     'suppliers.house_no_street_no',
     'barangays.brgy_name',                        
     'suppliers.city_id',
     'tickets.id',
     'tickets.ticket_no',                                                                                            

    )                        
  ->get();  

dd($orders); 

我希望我的结果是一个对象,但我将结果作为一个数组

Collection {#525 ▼
  #items: array:2 [▶]
}

我能做些什么来解决这个问题的最好方法是什么?

标签: laravel

解决方案


它是Order对象的集合。dd()显示数组,但那些是该数组内的对象。如果您循环$orders变量,您将能够使用对象表示法来获取您需要的字段。

例如:

foreach($objects as $object){
    echo ($object->id); // or whatever field you need from the $order object
}

这实际上是 Laravel 真正闪耀的地方——它有一个很棒的模型系统。使用模型通过简单的 Eloquent 查询提取数据以及您需要的任何关系,可能会使您的喜欢变得更容易。


推荐阅读