我试过几种方法,但都不管用(好像忽略了它)。所以我试着:
$user->notes()->groupBy('title')->get();
上面的方法完全忽略groupby,只返回注解集合。
Note::where('user_id', $user->id)->groupBy('title')->get();
和这个输出完全一样。
在我的 database.php
,数据库设置为 'strict' => false
我也尝试过使用raw db query,它以一种奇怪的格式返回它(使用groupby时为每个标题返回1行)
DB::table('notes')->where('user_id', $user->id)->groupBy('title')->get();
我见过很多人面对这个问题,但是没有一个建议的方法(上面)解决这个问题。
我可以通过使用 collection->each(function ($note) {...} )
然而,虽然有groupby可以用1行轻松地实现这一点,但为什么繁重的工作。。
有人知道它为什么不起作用吗?
2条答案
按热度按时间xam8gpfp1#
您只需要先调用->get(),然后调用->groupby()方法。这是因为在sql查询中,首先需要选择元素,然后选择组。
所以你的代码应该是这样的:
下面是一个按查询分组的示例:
iq0todco2#
使用select()并在select中按字段添加组