Почему запросы deos не извлекают результат, однако есть строки? - PullRequest
1 голос
/ 14 марта 2019

Я пытаюсь получить записи из двух таблиц.

1 - токены 2 - транзакции

В обеих таблицах есть один и тот же столбец user_id, а в таблице tokens есть transaction_id. Я пытаюсь получить все транзакции, имеющие отношение к token. Я пытаюсь следовать

$EarnedData = Token::whereIn('user_id', $descendants)
    ->whereHas('transaction', function($q){
            $q->where('custom', '!=', 'BB')->orWhereNull('custom');
    })->sum('amount');

После отладки я получил необработанный запрос из вышеприведенного скрипта, следующий за

    select sum(`amount`) as aggregate from `tokens` 
    where 
    `user_id` in (15, 49, 58,117, 119, 120, 130, 13) 
    and exists 
    (select * from `transactions` where `tokens`.`transaction_id` = `transactions`.`id`
    and (`custom` != 'BONUS' or `custom` is null))

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

1 Ответ

0 голосов
/ 14 марта 2019

Потому что вы никогда не ->get(); результаты!Переменная $earnedData теперь содержит проанализированный запрос, поскольку вы никогда не выполняли его.

$earnedData = Token::whereIn('user_id', $descendants)
    ->whereHas('transaction', function($q) {
        $q->where('custom', '!=', 'BB')->orWhereNull('custom');
    })->sum('amount')
    ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...