0
$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);

this gives me an error like

"message": "Call to undefined method 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();

this also same error

2

1 Answer 1

2

Query builder will return the collection with stdClass, try to change Query Builder to 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();

Check my anwser here.

Sign up to request clarification or add additional context in comments.

2 Comments

thanks, TsaiKoga. is it possible return stdClass with row query ?
@MHFuad I think you can rewrite the` collection` or toarray method, but not recommend it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.