php - Laravel 5.4 查询生成器存在 groupBy 问题

标签 php mysql laravel eloquent query-builder

我正在尝试将此查询转换为 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: 传递给 Illuminate\Database\Connection::prepareBindings() 的参数 1 必须是给定的数组类型,字符串,在/var/www/html/source/luniverse/vendor 中调用/laravel/framework/src/Illuminate/Database/Connection.php 第 648 行并定义 这是我的尝试(众多尝试之一):

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

数据库配置设置为严格模式,但这似乎并不能完全解释该特定错误。原始查询在数据库 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();

关于php - Laravel 5.4 查询生成器存在 groupBy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49635999/

相关文章:

php - 使用php删除数据

php - 从根文件夹 laravel 之外的文件夹访问文件

php - 使用 MYSQL 的 UTF-8 插入查询在部署服务器上不工作

PHP/MYSQL 子查询导致未定义索引错误

mysql - 在 MYSQL 中将 AM/PM 中的时间转换为午夜后的分钟格式

php - MySQL/PDO : Select different columns depending on parameters

php - 基于 MySQL Inner Join 的查询给出重复的结果

php - 请参阅 laravel 中的 select 与 eloquent

javascript - 单击时显示表单并显示输入框的值

php - 如何使用 PHP 在图像上添加文本