【发布时间】:2019-07-31 18:52:12
【问题描述】:
我使用查询来获取用户拥有的模型,但每个用户只返回 1 个模型。如何获得全部?如果我设置 $count=3 我应该收到 3 个或更多模型组,但只返回第一行
$items->where(/*.....*/)
->groupBy('user_id')
->havingRaw("COUNT(*) >= {$count}")->get()
更新 我解决了。我创建了一个单独的函数来准备查询并使用了 2 次。 我认为这可能是一个不正确的解决方案,但它有效
$items = Items::query();
$this->prepareQuery($request, $items)
$items->whereHas('user', function ($q) use ($count, $request){
$q->whereHas('items', function ($query) use ($request){
$this->prepareQuery($request, $query);
}, '>=', $count);
})
->paginate(4);
【问题讨论】:
-
groupBy就是这样做的。如果您有 10 个具有相同user_id的项目,它只会返回一个。 -
如何解决这个问题?
-
使用
->get();代替groupBy