我正在使用Laravel 4.2(我知道它的旧版本)用于我的项目。我会尽力解释我的问题。
我的目标是访问每个用户的所有记录(来自数据库)。计算其交易总和并按降序排序。
我所做的是:
我有一个控制器,我可以访问用户的ID并调用Repositories方法getAllTransactions
来获取用户的所有交易。
$entries = \Repositories\Something::getUsers();
foreach ($entries as $key => $entry) {
//calculate total transaction
$userTransactions = \Repositories\Something::getAllTransactions($entry->user_id);
$entry->totalTransaction = $userTransactions;
}
然后在我的Repositories
中,我致电SomeModel
并获取所有交易。然后,我循环并添加交易金额并返回控制器。
$userTransaction = \SomeModel::where('status', '1')
->where('user_id', $user_id)
->get();
$totalTransactionAmount = 0;
foreach($userTransaction as $transaction) {
$totalTransactionAmount = $totalTransactionAmount + $transaction->amount;
}
return $totalTransactionAmount;
最后,我将返回值赋给$entries
对象,使新属性totalTransaction像:
$entry->totalTransaction = $userTransactions;
如第一个代码示例所示。
现在,我想按照新创建的属性$entries
按降序对totalTransaction
进行排序。是否可以通过新添加的属性对eloquent对象$entries
进行排序?如果是,我该如何完成?
任何帮助将受到高度赞赏。谢谢!