Коллекция моделей Laravel не соответствует SQL - PullRequest
1 голос
/ 22 сентября 2019

Так странно!

Я использую следующий код для создания запроса (Laravel 5.5).Это немного динамично по своей природе.Вот код:

$calls = Media::where('user_id', '=', $user->id)
        ->where(function($query){

            $query->where(function($qq){
                $qq->where('some_param', '=', 1)
                    ->where('some_other_param', '=', 'A');
            });

            $query->orWhere(function($qq){
                $qq->where('some_param', '=', 0)
                    ->where('some_other_param', '=', 'B');
            });

        })
        ->when(($completedOnly == true), function($q){
            $q->where('status', '>=', '8');
            $q->where(function($qq){
                $qq->where('s3_key', '!=', 0);
                $qq->where('s3_key', '!=', '');
                $qq->whereNotNull('s3_key');
                $qq->whereNotNull('s3_bucket');
            });
        })
        ->whereNotNull('some_third_param')
        ->whereNotNull('some_fourth_param')
        ->orderBy('sort_param', 'desc')
        ->offset($start)
        ->limit($amount)
        ->get();

    return $media;

Я использую отладочную панель Laravel, чтобы выручить меня и убедиться, что запрос создается правильно.Когда я смотрю на показания, я вижу следующее:

select * from `users_media` where `user_id` = '13475' and ((`some_param` = '1' and `some_other_param` = 'A') or (`some_param` = '0' and `some_other_param` = 'B')) and `status` >= '8' and (`s3_key` != '0' and `s3_key` != '' and `s3_key` is not null and `s3_bucket` is not null) and `some_third_param` is not null and `some_fourth_param` is not null and `users_media`.`deleted_at` is null order by `sort_param` desc limit 25 offset 0

Когда я подключаю это к своему клиенту БД для проверки запроса, я вижу данные, возвращенные, как я и ожидал.

Однако, когда я пытаюсь получить данные в Laravel и Eloquent, я получаю пустую коллекцию.Я не понимаю, почему это происходит.Если запрос работает с моим клиентом, почему я получаю пустую коллекцию от Eloquent?

Справка!

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