Сбой запроса Laravel с использованием запроса функции - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь получить сумму всех групп пользователей по месяцам. Но если я добавлю сумму, то запрос не будет работать. Он возвращает журнал суммы в виде пустого массива, но без запроса суммы возвращает все данные журнала ежемесячно.

Мой запрос

$reports = $user->whereHas('groups', function ($query) use($acceptedGroup) {
    $query->whereIn('groups.name',$acceptedGroup);
})->with(
    array(
        'amountLogs' => function($query) use($year){
            $query
            ->select(
                DB::raw('sum(amount) as total')
            )
                ->whereYear('created_at','=',  $year)
                ->groupBy(DB::raw("MONTH(created_at)",'user_id'))->get();
        })
);

Если я удаляю

            ->select(
                DB::raw('sum(amount) as total')
            )

Тогда запрос работает

1 Ответ

0 голосов
/ 01 октября 2018

Если вы создаете конкретный выбор для отношения в своем запросе, вам также необходимо включить внешний ключ в связанную таблицу (в вашем случае, вероятно, users таблица)

->select(
   'user_id',
    DB::raw('sum(amount) as total')
)

Это позволяет Eloquent связать записи после загрузки из базы данных.

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