laravel api 带行查询的资源集合
laravel api resource collection with row query
$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": "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();
这也是同样的错误
查询生成器将 return 带有 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();
在这里查看我的。
$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": "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();
这也是同样的错误
查询生成器将 return 带有 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();
在这里查看我的