【发布时间】:2018-07-04 01:09:53
【问题描述】:
我已经尝试了几种方法,但它不起作用(似乎忽略它)。所以我尝试了:
$user->notes()->groupBy('title')->get();
以上方式完全忽略 groupBy 并且只返回笔记集合。
Note::where('user_id', $user->id)->groupBy('title')->get();
这个输出也完全一样。
在我的database.php中,数据库设置为'strict' => false
我也尝试过使用原始数据库查询,它以一种奇怪的格式返回它(当我使用 groupBy 时,每个标题返回 1 行)
DB::table('notes')->where('user_id', $user->id)->groupBy('title')->get();
我见过很多人面临这个问题,但是(以上)建议的方法都没有解决这个问题。
我可以使用collection->each(function ($note) {...} ) 实现我想要的,但是虽然有 groupBy 可以用 1 行轻松实现这一点,但为什么要繁重的工作..
有人知道为什么它不起作用吗?
【问题讨论】:
-
建议你debug the query(搜索“Listening For Query Events”)。
-
下次遇到这个问题时我会这样做。目前用
collection->each()克服了它。会在这里更新 -
如果您使用 Blade,您可以使用 barryvdh/laravel-debugbar 查看给定路由的查询。
-
能否请您显示 notes 表的架构?您的数据库驱动程序和版本是什么?
-
你能显示结果吗
dd(Note::where('user_id', $user->id)->groupBy('title')->toSql());
标签: mysql laravel group-by laravel-5.6