Laravel 5.6-GroupBy无法正常工作

感性的

我已经以几种方式尝试过它,但是它不起作用(似乎忽略了它)。所以我尝试了:

$user->notes()->groupBy('title')->get();

上面的方法完全忽略了groupBy,只返回笔记的集合。

Note::where('user_id', $user->id)->groupBy('title')->get();

也与此完全相同的输出。


在my中database.php,数据库设置为'strict' => false


我也尝试过使用原始数据库查询,它以一种奇怪的格式返回它(当我使用groupBy时,每个标题返回1行)

DB::table('notes')->where('user_id', $user->id)->groupBy('title')->get();

我见过很多人都面临这个问题,但是(上述)建议的方法都没有解决这个问题。

我可以使用来实现我想要的功能collection->each(function ($note) {...} ),但是虽然有groupBy可以通过1行轻松实现这一点,但是为什么要花很多功夫。

有谁知道为什么它不起作用?

桶装JP

您只需要先调用-> get(),然后再调用-> groupBy()方法即可。那是因为在SQL查询中您需要首先选择元素,然后进行分组。

因此,您的代码必须像这样:

DB::table('notes')->where('user_id', $user->id)->get()->groupBy('title');

以下是按查询分组的示例:

SELECT column_name(s)
FROM table_name
WHERE condition
GROUP BY column_name(s)
ORDER BY column_name(s);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章