Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 25.08.2016 15:28:57

Запрос

Доброго времени суток всем.
Подскажите пожалуйста, почему конструкция типа:

        $case = \App\Cases::where('no', $id)
                ->with(['providers.detail' => function ($query) {
                        $query->select('user_cards.name as prov_name', 'user_cards.code');
                    }])
                ->with(['providers.detail.country' => function ($query) {
                        $query->select('name');
                    }])
                ->with(['providers.detail.country.city' => function ($query) {
                        $query->select('name');
                    }])
                ->first();

создает вот такие запросы к базе:

2016-08-25T12:08:52.494900Z  404 Prepare        select * from `assist` where `no` = ? limit 1
2016-08-25T12:08:52.495011Z  404 Execute        select * from `assist` where `no` = '43022' limit 1
2016-08-25T12:08:52.495523Z  404 Close stmt
2016-08-25T12:08:52.496299Z  404 Prepare        select * from `case_providers` where `case_providers`.`case_no` in (?)
2016-08-25T12:08:52.496342Z  404 Execute        select * from `case_providers` where `case_providers`.`case_no` in (43022)
2016-08-25T12:08:52.496847Z  404 Close stmt
2016-08-25T12:08:52.497516Z  404 Prepare        select * from `user_cards` where `user_cards`.`code` in (?)
2016-08-25T12:08:52.497646Z  404 Execute        select * from `user_cards` where `user_cards`.`code` in (21822)
2016-08-25T12:08:52.498296Z  404 Close stmt
2016-08-25T12:08:52.498787Z  404 Prepare        select * from `user_countries` where `user_countries`.`id` in (?)
2016-08-25T12:08:52.498858Z  404 Execute        select * from `user_countries` where `user_countries`.`id` in (15)
2016-08-25T12:08:52.499176Z  404 Close stmt
2016-08-25T12:08:52.499651Z  404 Prepare        select `name` from `user_cities` where `user_cities`.`country` in (?)
2016-08-25T12:08:52.499734Z  404 Execute        select `name` from `user_cities` where `user_cities`.`country` in (15)

Почему поле name выбирается только в последнем случае с таблицей городов и игнорируются поля во всех остальных случаях?
Вообще задача получить имена провайдеров и их коды из user_cards, страну и город этого провайдера из user_countries/user_cities для одного случая.

Не в сети

Подвал раздела