Как добавить, где внутри агрегатная функция в laravel? - PullRequest
1 голос
/ 05 февраля 2020

Как я могу добавить "где" внутри этого кода?

$loans = LoanApplication::with('loanInterests')
        ->with(['loanPayments' => function($query) {
                $query->sum('amount_paid');
        }])->get();

я бы хотел сказать "с 'loanPayments', сумма 'amount_paid', где 'type' равно 'payment'.

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 05 февраля 2020

Внутри функции $query является обычным построителем запросов. Я думаю, что это то, что вы хотите:

$loans = LoanApplication::with('loanInterests')
        ->with(['loanPayments' => function($query) {
                $query->sum('amount_paid');
                $query->where('type', 'payment');
        }])->get();
0 голосов
/ 05 февраля 2020
  1. Добавить ->where('type', 'payment')
  2. Выберите foreign_key out и сгруппируйте по foreign_key
$loans = LoanApplication::with('loanInterests')
        ->with(['loanPayments' => function($query) {
                $query->where('type', 'payment')
                      ->select(DB::raw('SUM(amount_paid) AS sum_amount_paid'), 'loan_application_id')
                      ->groupBy('loan_application_id');
        }])->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...