Красноречивый запрос в Laravel 5.8 - PullRequest
0 голосов
/ 02 октября 2019

У меня проблема с запросом, который я выполняю в Laravel 5.8 с использованием Eloquent, и я действительно не знаю, что происходит.

Я объясню:

Мой запрос Eloquentthis:

$naviones=DB::connection('naviones')->table('ps_customer')
            ->select('ps_orders.id_order','ps_customer.firstname','ps_customer.lastname','ps_customer.email','ps_address.address1',
                'ps_address.postcode','ps_address.city','ps_address.phone_mobile','ps_orders.id_order','ps_orders.reference',
                'ps_order_detail.product_name','ps_order_detail.product_quantity','ps_shop.name as tienda','ps_carrier.name as transportista')
            ->join('ps_address','ps_customer.id_customer','=','ps_address.id_customer')
            ->join('ps_orders', function($join){
                $join->on('ps_address.id_customer','=','ps_orders.id_customer')
                    ->where('ps_address.id_address','=','ps_orders.id_address_delivery');
            })
            ->join('ps_order_detail','ps_orders.id_order','=','ps_order_detail.id_order')
            ->join('ps_shop','ps_order_detail.id_shop','=','ps_shop.id_shop')
            ->join('ps_carrier','ps_orders.id_carrier','=','ps_carrier.id_carrier')
            ->where('ps_orders.id_order','=',11389)
            ->get();

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

SELECT
`ps_orders`.`id_order`, 
`ps_customer`.`firstname`,
`ps_customer`.`lastname`,
`ps_customer`.`email`,
`ps_address`.`address1`,
`ps_address`.`postcode`,
`ps_address`.`city`,
`ps_address`.`phone_mobile`,
`ps_orders`.`id_order`,
`ps_orders`.`reference`,
`ps_order_detail`.`product_name`,
`ps_order_detail`.`product_quantity`,
`ps_shop`.`name` AS `tienda`,
`ps_carrier`.`name` AS `transportista`
 FROM
`ps_customer`
 INNER JOIN `ps_address` ON `ps_customer`.`id_customer` = 
 `ps_address`.`id_customer`
 INNER JOIN `ps_orders` ON `ps_address`.`id_customer` = 
 `ps_orders`.`id_customer`
 AND `ps_address`.`id_address` = ps_orders.id_address_delivery
 INNER JOIN `ps_order_detail` ON `ps_orders`.`id_order` = 
`ps_order_detail`.`id_order`
 INNER JOIN `ps_shop` ON `ps_order_detail`.`id_shop` = 
`ps_shop`.`id_shop`
 INNER JOIN `ps_carrier` ON `ps_orders`.`id_carrier` = 
`ps_carrier`.`id_carrier`
 WHERE
`ps_orders`.`id_order` = 11389

Ну, суть в том, что если я возьму этот запрос и выполню его в Mysql, он даст мне информацию, которая мне нужна, но, в красноречивой форме, сбор,это пусто. Это то, что сводит меня с ума, что коллекция пуста. Этот запрос доставляется мне красноречивым, как я могу убедиться, что он доставлен красноречивым? Я специально сгенерировал ошибку в одном из полей для Laravel, чтобы сообщить мне и показать мне полный запрос для его изучения, и это запрос:

enter image description here

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

Я не понимаю, что происходит, я не знаю, что делатьУ меня есть два дня, и я понятия не имею, что происходит.

Я надеюсь, что вы можете дать мне некоторую идею, спасибо.

1 Ответ

1 голос
/ 02 октября 2019

Если вы удалите это:

->join('ps_orders', function($join){
            $join->on('ps_address.id_customer','=','ps_orders.id_customer')
                ->where('ps_address.id_address','=','ps_orders.id_address_delivery');
        })

есть ли результат? возможно, проблема в этой функции.

также, вы можете изменить это:

DB::connection('naviones')->table('ps_customer')

на

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