尝试在Laravel中进行分组时出现错误

时间:2020-10-21 09:11:34

标签: laravel laravel-8

我正在尝试创建一个页面,该页面将显示批准的帖子数量并将其按created_at列分组。

当我使用编写的代码时,会出现此错误

ErrorException SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#1不在GROUP BY子句中,并且包含未聚合的列'blog.posts.id',该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容(SQL:从posts中选择*,其中status =由created_at批准的组)(查看:/ home / workspace / Documents / projects / blog / Modules /帖子/资源/视图/index.blade.php)

这是我的代码

$approved = Post::where('status', 'approved')->groupBy('created_at')->get();

dd($approved);

2 个答案:

答案 0 :(得分:1)

$data = DB::table('posts')
                ->groupBy('created_at')
                ->having('status','approved')
                ->get();

根据情况随时随地更改

答案 1 :(得分:0)

使用groupby子句时,请始终在select语句中添加要分组的列名 EG:

$approved = Post::select('created_at')
                  ->where('status', 'approved')
                  ->groupBy('created_at')->get();

dd($approved);