Laravel 5.4查询生成器与groupBy有问题(Laravel 5.4 query builder having issues with groupBy)

编程入门 行业动态 更新时间:2024-10-27 23:31:59
Laravel 5.4查询生成器与groupBy有问题(Laravel 5.4 query builder having issues with groupBy)

我试图将这个查询转换成Laravel 5.4中的查询生成器:

SELECT oc.id, oc.name, oat.user_id, p.first_name, p.last_name FROM oauth_clients oc LEFT JOIN oauth_access_tokens oat ON oc.id = oat.client_id JOIN users u on u.id = oat.user_id JOIN people p on p.id = u.person_id WHERE oc.revoked = false AND oc.password_client = true GROUP BY oc.id, oat.user_id

并且获得这个错误barf: Argument 1 passed to Illuminate\Database\Connection::prepareBindings() must be of the type array, string given, called in /var/www/html/source/luniverse/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 648 and defined这是我的尝试(许多人之一):

$tokens = DB::select('oc.id','oc.name','oat.user_id','p.first_name','p.last_name') ->from('oauth_clients as oc') ->leftJoin('oauth_access_tokens as oat', 'oc.id', '=', 'oat.client_id') ->join('users as u', 'u.id', '=', 'oat.user_id') ->join('people as p', 'p.id', '=', 'u.person_id') ->where('oc.revoked', '=', 'false') ->where('oc.password_client', '=', 'true') ->groupBy('oc.id') ->groupBy('oat.user_id') ->get();

数据库配置设置为严格模式,但这并不完全可以解释特定的错误。 原始查询在DB gui中运行良好。

I'm trying to convert this query to query builder in Laravel 5.4:

SELECT oc.id, oc.name, oat.user_id, p.first_name, p.last_name FROM oauth_clients oc LEFT JOIN oauth_access_tokens oat ON oc.id = oat.client_id JOIN users u on u.id = oat.user_id JOIN people p on p.id = u.person_id WHERE oc.revoked = false AND oc.password_client = true GROUP BY oc.id, oat.user_id

And getting this error barf: Argument 1 passed to Illuminate\Database\Connection::prepareBindings() must be of the type array, string given, called in /var/www/html/source/luniverse/vendor/laravel/framework/src/Illuminate/Database/Connection.php on line 648 and defined This is my attempt at it (one of many):

$tokens = DB::select('oc.id','oc.name','oat.user_id','p.first_name','p.last_name') ->from('oauth_clients as oc') ->leftJoin('oauth_access_tokens as oat', 'oc.id', '=', 'oat.client_id') ->join('users as u', 'u.id', '=', 'oat.user_id') ->join('people as p', 'p.id', '=', 'u.person_id') ->where('oc.revoked', '=', 'false') ->where('oc.password_client', '=', 'true') ->groupBy('oc.id') ->groupBy('oat.user_id') ->get();

The database config is set to strict mode, but that doesn't exactly seem to explain that particular error. The raw query runs fine in a DB gui.

最满意答案

改变groupby代码

$tokens = DB::select('oc.id','oc.name','oat.user_id','p.first_name','p.last_name') ->from('oauth_clients as oc') ->leftJoin('oauth_access_tokens as oat', 'oc.id', '=', 'oat.client_id') ->join('users as u', 'u.id', '=', 'oat.user_id') ->join('people as p', 'p.id', '=', 'u.person_id') ->where('oc.revoked', '=', 'false') ->where('oc.password_client', '=', 'true') ->groupBy('oc.id','oat.user_id') ->get();

Change the groupby code like

$tokens = DB::select('oc.id','oc.name','oat.user_id','p.first_name','p.last_name') ->from('oauth_clients as oc') ->leftJoin('oauth_access_tokens as oat', 'oc.id', '=', 'oat.client_id') ->join('users as u', 'u.id', '=', 'oat.user_id') ->join('people as p', 'p.id', '=', 'u.person_id') ->where('oc.revoked', '=', 'false') ->where('oc.password_client', '=', 'true') ->groupBy('oc.id','oat.user_id') ->get();

更多推荐

本文发布于:2023-07-26 10:34:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1274373.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:生成器   Laravel   groupBy   issues   builder

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!