如何添加新的键值对以响应laravel中的groupBy?
我有一个订单表,其中包含id、订单id、用户id等 我将groupBy应用于订单,如下所示:如何添加新的键值对以响应laravel中的groupBy?,laravel,laravel-5,group-by,Laravel,Laravel 5,Group By,我有一个订单表,其中包含id、订单id、用户id等 我将groupBy应用于订单,如下所示: $orders = DB::table('orders')->whereUserId($userId)->groupBy('order_id')->get(); foreach($orders as $order){ $order['ee']='test'; } 所以,我得到的回应是: Collection {#547 ▼ #items: array:1 [▼
$orders = DB::table('orders')->whereUserId($userId)->groupBy('order_id')->get();
foreach($orders as $order){
$order['ee']='test';
}
所以,我得到的回应是:
Collection {#547 ▼
#items: array:1 [▼
"d0b942a572941b90f385" => Collection {#535 ▼
#items: array:4 [▼
0 => Order {#561 ▶}
1 => Order {#562 ▶}
2 => Order {#563 ▶}
3 => Order {#564 ▶}
]
}
]
}
现在我在这里应用foreach循环,这样我就可以将新的kew值对添加到上面4个数组中,但现在它添加了这个新的键值对。我完成了如下代码:
$orders = DB::table('orders')->whereUserId($userId)->groupBy('order_id')->get();
foreach($orders as $order){
$order['ee']='test';
}
我没有弄错,因为我在foreach循环中逐行检查它,然后它正确地添加它,但当我在循环外检查时,它现在向我显示这个新的键值对如果你想修改你创建的元素,最好使用map:
$orders = $orders->map(function($order) {
$order['ee'] = 'test';
return $order;
});