Laravel集合groupBy() with sum()

问题描述 投票:0回答:1

是否可以用sum()对一个laravel集合进行groupBy?这个集合看起来像这样。

    [
    {id: 1, name: A, quantity: 1, price: 20, options:[{id:10,name:AC}{id:13,name:AB}]},
    {id: 1, name: A, quantity: 5, price: 15, options:[{id:20,name:AV},{id:30,name:AZ}]},
    {id: 1, name: A, quantity: 10, price: 15, options:[{id:20,name:AV},{id:30,name:AZ}]},
    {id: 1, name: A, quantity: 2, price: 10, options:[]},
    {id: 1, name: A, quantity: 4, price: 10, options:[]}
    ]

第2行和第3行是相同的,我需要对数量进行求和。

第4行和第5行是相同的,我需要对数量进行求和。

结果应该是这样的。

  [
    {id: 1, name: A, quantity: 1, price: 20, options:[{id:10,name:AC}{id:13,name:AB}]},
    {id: 1, name: A, quantity: 15, price: 15, options:[{id:20,name:AV},{id:30,name:AZ}]},
    {id: 1, name: A, quantity: 6, price: 10, options:[]},
    ]
laravel collections laravel-5.6 laravel-collection
1个回答
0
投票

你可以显示这个 包裹

$invoices = Invoice::withSum('items:price')->get();
© www.soinside.com 2019 - 2024. All rights reserved.