如何在关系模型 class 中进行计算并接收清晰的数据

How can I make calculations in relations model class and receive clear data

我有这个对象,如您所见,我按不同的变量排序

$banks = Bank::with('credits')->with('deposits')->with('bank_assets')->with('atms')->get()->sortByDesc($sort);

所以我在我的模型中有关系,例如 bank_assets(信用和存款很清楚,我可以按存款或信用排序) 但是bank_assets!不 在这种情况下,我需要按我需要计算的活动进行排序。 因为 Actives 这是来自这个 table http://prntscr.com/ij3idg 的不同数量的总和 在我的模型关系中,我只得到对象而不是这个数量的总和 如你所见

//Bank Model
    public function bank_assets()
    {

        return $this->hasMany('App\BankRating')->where('type','assets');
    }

但我需要按活性进行排序,活性是不同数量的总和 请帮助我并解释我如何排序

试试这个,这将根据 $sort 参数和 ammount 属性 在 bank_assets 关系上排序:

$banks = Bank::with([
    'credits',
    'deposits',
    'bank_assets'
    'atms',
])->get()->sortByDesc(function($bank) use ($sort) {
    if($sort == 'actives') {
        return $bank->bank_assets->sum('ammount');
    }
    return $bank->$sort;
});

希望这能奏效。 ;)