我有一个具有相同ID的表,所以我用sum显示了groupBy选项。我有很多列,如id,item_name,rate,quantity,value这是我的代码。
$orders = Order::where('item_id', $id)
->where('delivery_status', 1)
->groupBy('item_id')
->selectRaw('sum(quantity) as quantity, sum(value) as value, item_id')
->pluck('item_id','quantity', 'value');
通过这个我得到三列id,数量和价值与总和。我的问题是我还想显示其他列,如item_name,rate,delivery_status等,我不想像速率一样对它们求和。我该如何显示它们?我也可以使用item_name进行分组,但它可以工作但不能与速率分组,因为其他项目也可能具有相同的速率。
答案 0 :(得分:1)
不要使用pluck
,因为它只会返回您指定的列。相反,请尝试使用get
返回所有表格列:
$orders = Order::where([
'item_id' => $id,
'delivery_status' => 1
])
->groupBy('item_id')
->selectRaw('orders.*, sum(quantity) as quantity, sum(value) as value, item_id')
->get();