我如何按关系分组?
例
Sales::with('product_detail.product')->groupBy('product_name')->get()
Run Code Online (Sandbox Code Playgroud)
如何用雄辩的代码获得结果?
小智 12
我认为最重要的答案没有回答问题。据我了解,目的是对外部查询的结果进行分组,而不是对关系进行分组。
这在 Eloquent-y DB 调用中是不可能的,因为对 With 的调用是单独的。您可以手动连接表并按所需列进行分组。
如果你想保持 Eloquent-y,有很多方便的方法可以用于 Collections,包括 GroupBy。所以可以先获取数据,然后再分组。
Imt*_*bel 10
您可以指定一个回调函数来对您的关系进行分组,如下所示:
Sales::with(['product_detail.product' => function($query){
$query->groupBy('product_name');
}])->get();
Run Code Online (Sandbox Code Playgroud)
小智 6
这可能已经很旧了,但是,它可以帮助探索者。
您可以在 Laravel 中使用 groupBy 直接链接到关系/远程关系。我不知道这是否特定于任何版本,但 V8 可以工作。并且关系也像您使用的那样被加载with。
Sales::query()->where('this', $that)->get()->groupBy('product.name'); // OR
Sales::query()->where('this', $that)->get()->groupBy('product.status.name');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24046 次 |
| 最近记录: |