如何在关系模型 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;
});
希望这能奏效。 ;)
我有这个对象,如您所见,我按不同的变量排序
$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;
});
希望这能奏效。 ;)