从laravel集合中获取基于列的计数

我有一个收藏夹,并且根据城市将它们分组。

$collection = Order::with([
            'orderItems','customer'
        ])->get();

$batches = $collection->groupBy('cities');

$mumbai = $batches->get('membai')

在诸如$ mumbai之类的集合的每个组中,我都有一个“状态”列,我想要获取其计数,例如状态为“已交付”,“待处理”等的订单数量。我该怎么做?任何帮助都是非常可取的。

jideyouwo 回答:从laravel集合中获取基于列的计数

尝试这样做:

$collection = Order::groupBy('group_id')
->selectRaw('count(*) as total,group_id')
->get();

祝你好运!

,

计算的情况下计数

因此,您可以在一个分组记录中获得所有状态计数。

我认为您可以做这样的事情。

$collection = Order::with([
            'orderItems','customer'
        ])->groupBy('cities')
          ->select(\DB::raw('
               SUM(CASE 
                   WHEN status = "delivered" THEN 1
                   ELSE 0
               END) AS delivered_count,SUM(CASE 
                   WHEN status = "pending" THEN 1
                   ELSE 0
                   END) AS pending_count
            '),'membai')->get();

希望这可以为您提供帮助。

本文链接:https://www.f2er.com/3168596.html

大家都在问