Laravel рассчитать общий баланс - PullRequest
0 голосов
/ 16 июня 2020

Вот моя таблица:

| id  | type   | balance 
| ----|--------| -------
| 1   | credit | 2400
| 2   | credit | 4800
| 3   | debit  | 1200

Расчетная сумма должна быть 6000. (2400 + 4800 - 1200) = 6000

Как я могу сделать это с помощью Eloquent или collection?

Ответы [ 3 ]

1 голос
/ 16 июня 2020

Использование коллекции laravel и одного запроса sql.

return Model::all()->reduce(function ($carry, $item) { 
  return $item->type == 'credit' 
     ? $carry + $item->balance : $carry - $item->balance; 
},0);
1 голос
/ 16 июня 2020

Вы можете сделать это с помощью Eloquent:

Кредиты

$totalCredits = Model::where('type', 'credit')->sum('balance');

Дебиты

$totalDebits = Model::where('type', 'debit')->sum('balance');

Остатки

$Total =  $totalCredits - $totalDebits

Если вы хотите только СУММ, сделайте это

DB::table("table")->get()->sum("balance")
0 голосов
/ 16 июня 2020

Попробуйте это

$credit = Model::where('type', 'credit')->sum('balance');

$debit = Model::where('type', 'debit')->sum('balance');

$total = $credit - $debit;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...