Как получить СУММ на связанной модели, используя готовую загрузку, не загружая целые данные отношения?
В моем проекте есть две модели, Account
и Transaction
. Модель аккаунта has many
транзакций.
Мое требование: : Получать аккаунты и стремиться загрузить только сумму на соответствующую таблицу .
Мой текущий код предоставлен : В этом коде transactions
загружены с нетерпением и сумма рассчитывается с помощью php. Но я бы предпочел не загружать целые транзакции. Единственное требование: sum('amount')
.
таблица: счета
| id | name | address | ...
таблица: транзакции
| id | account_id | amount | ...
Account.php
/**
* Get the transaction records associated with the account.
*/
public function transactions()
{
return $this->hasMany('App\Models\Transaction', 'account_id');
}
Следующий код дает каждой учетной записи и ее транзакции.
$account = Account::with(['transactions'])->get();
SUMрассчитывается по формуле:
foreach ($accounts as $key => $value) {
echo $value->transactions->sum('amount'). " <br />";
}
Я пробовал что-то подобное, но не сработало.
public function transactions()
{
return $this->hasMany('App\Models\Transaction', 'account_id')->sum('amount;
}