Laravel LAVEL groupBy值并存储另一个值与groupBy值的和作为键

Laravel LAVEL groupBy值并存储另一个值与groupBy值的和作为键,laravel,eloquent,Laravel,Eloquent,抱歉这个冗长的标题,我只是不知道如何准确地表达我想做的事情 我有一张这样的航班表 id | user_id | orig | dest | value | ======================================= 1 | 1 | LHR | WLG | 34000.00 | 2 | 1 | LHR | WLG | 47000.00 | 3 | 1 | LHR | AKL | 22000.00 | 我想要的是一个目

抱歉这个冗长的标题,我只是不知道如何准确地表达我想做的事情

我有一张这样的航班表

id | user_id | orig | dest | value    |
=======================================
1  |    1    | LHR  | WLG  | 34000.00 |
2  |    1    | LHR  | WLG  | 47000.00 |
3  |    1    | LHR  | AKL  | 22000.00 |
我想要的是一个目的地数组(
'dest'
),其中包含具有该目的地的任何记录的值之和

我目前正在使用Eloquent拉取检索记录,然后在
'dest'

$transactions =  AirTran::select('orig','dest','value')->where('user_id','1')->get();

$group_tran = $transactions->groupBy('dest');
不幸的是,这将分别返回数组中的每一行,而不是值的总和:

WLG:
    0:
       orig: 'LHR'
       dest: 'WLG'
       value: '34000.00'
    1:
       orig: 'LHR'
       dest: 'WLG'
       value: '47000.00'
AKL:
    0:
       orig: 'LHR'
       dest: 'AKL'
       value: '22000.00'
但我真正想要的是:

WLG:
    0:
       orig: 'LHR'
       dest: 'WLG'
       value: '81000.00'
AKL:
    0:
       orig: 'LHR'
       dest: 'AKL'
       value: '22000.00'
有没有一种方法可以使用Eloquent而不是像下面这样使用PHP来获得
'value'
列的总和

foreach($transactions as $transaction) {

   if(isset($data[$transaction->dest]['revenue'])){
       $data[$transaction->dest]['revenue'] += $transaction->value;
    } else {
       $data[$transaction->dest]['revenue'] = $transaction->value;
    }
}

您可以使用eloquant的函数sum。 您的代码可以是:

$transactions=AirTran::select('orig','dest','value')->where('user_id','1')->get()

$group\U tran=$transactions->groupBy('dest')) ->总和(“值”)

或直接使用一个命令:

$group_tran= AirTran::select('orig','dest','value')->where('user_id','1')
                       ->sum('value')
                       ->groupBy('dest')
                       ->where('user_id','1')
                       ->get();

谢谢你的回复。当我尝试使用sum()时,得到的响应是0。这可能是因为值在另一个用数字索引的数组中吗?每个
dest
可以有多个
orig
值。你想要哪一个?