我在order和orderItem之间有一个简单的hasMany
关系。我想要做的是获取类似订单项目的数量。这是我所做的:Laravel雄辩只返回foreach中第一个元素的返回结果?
$orderItems = $order->orderItems();
$distinctItems = $orderItems->groupBy('item_name')->distinct('item_name')->get();
foreach($distinctItems as $i){
$i['count'] = $orderItems->where('item_name', '=', $i->item_name)->count();
}
$order['items'] = $distinctItems;
但是,计数仅返回第一个订单项目,而其他项目返回0。我不知道为什么会发生这种情况。我也检查了where()
为第一个项目以外的项目返回null。
感谢您的帮助。
我不知道为什么会这样,但代替'$'['count'] = $ orderItems-> where('item_name','=',$ i-> item_name) - > count();'使用'$ i ['count'] = $ order-> orderItems() - > where('item_name','=',$ i-> item_name) - > count();'做的工作。解释会有所帮助。 –