laravel коллекция ресурсов API с запросом строки - PullRequest
0 голосов
/ 01 марта 2020
$two = DB::select("SELECT
                ul.id ,
                ul.name controller_name, 
                ul.user_id controller_user_id,
                ul.location contoller_location, 
                u.name user_name,
                models.active model_alive_status,
                models.serial_number model_sirial_number,
                su.payment_status subscriptions_status,
                su.to_date subscriptions_expire
    FROM `user_controllers` as ul
    LEFT JOIN users as u ON ul.user_id = u.id
    INNER JOIN models on models.userController_id = ul.id
    LEFT join subscriptions as su on su.user_id = ul.user_id");

return UserControllerInfo::collection($two);

это дает мне ошибку типа

"message": "вызов неопределенного метода stdClass :: toArray ()",

$one = DB::table('user_controllers')
        ->leftJoin('users', 'user_controllers.user_id', '=', 'users.id')
        ->leftJoin('models', 'models.userController_id', '=', 'user_controllers.id')
        ->leftJoin('subscriptions', 'subscriptions.user_id', '=', 'user_controllers.user_id')
        ->select('user_controllers.*','models.*')
        ->get();

это тоже та же ошибка

1 Ответ

1 голос
/ 01 марта 2020

Query Builder вернет коллекцию с помощью stdClass, попробуйте изменить Query Builder на Eloquent Builder:

$one = UserController::leftJoin('users', 'user_controllers.user_id', '=', 'users.id')
                     ->leftJoin('models', 'models.userController_id', '=', 'user_controllers.id')
                     ->leftJoin('subscriptions', 'subscriptions.user_id', '=', 'user_controllers.user_id')
                     ->select('user_controllers.*','models.*')
                     ->get();

Проверьте мой ответчик здесь.

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