我有这个对象,你可以看到我按不同的变量排序
$banks = Bank::with('credits')->with('deposits')->with('bank_assets')->with('atms')->get()->sortByDesc($sort);
所以我在我的模型中有关系,例如bank_assets(信用和存款工作清楚,我可以按存款或信用分类) 但是bank_assets!没有 在这种情况下,我需要按需要计算的活动进行排序。 因为Actives这是此表http://prntscr.com/ij3idg中不同ammounts的汇总 在我的模型关系中,我得到的对象不是这个数量的总和 如你所见
//Bank Model
public function bank_assets()
{
return $this->hasMany('App\BankRating')->where('type','assets');
}
但是我需要按活跃数排序,这是不同金额的总和 请帮助我并解释我如何排序
答案 0 :(得分:0)
试试这个,这会根据$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;
});
希望这有效。 ;)