根据新创建的属性进行雄辩排序

时间:2016-09-11 11:45:10

标签: php laravel sorting eloquent

我正在使用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进行排序?如果是,我该如何完成? 任何帮助将受到高度赞赏。谢谢!

0 个答案:

没有答案