laravel - 在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 [▶]
}
我能做些什么来解决这个问题的最好方法是什么?
解决方案
它是Order对象的集合。dd()
显示数组,但那些是该数组内的对象。如果您循环$orders
变量,您将能够使用对象表示法来获取您需要的字段。
例如:
foreach($objects as $object){
echo ($object->id); // or whatever field you need from the $order object
}
这实际上是 Laravel 真正闪耀的地方——它有一个很棒的模型系统。使用模型通过简单的 Eloquent 查询提取数据以及您需要的任何关系,可能会使您的喜欢变得更容易。
推荐阅读
- javascript - Promise 返回错误的值
- javascript - 我想编辑从外部源加载的页面元素
- jquery - jquery append' 在一个对象上调用
- mysql - sql - 如何进行此查询?
- javascript - 如何从 localStorage 中检索多个键和值
- java - 我收到一个错误。(图像文件的真实路径)
- owl - 如何在 protege 中正确设置“仅”限制?
- mapbox - Mapbox如何编写带有停止的图层绘制属性以便它可以支持特征状态?
- angular - 打开和关闭 ng-bootstrap 警报组件 (ngb-alert)
- java - Spring Boot 集成测试覆盖自定义 .properties 文件