我正在尝试通过类别获取产品并在类别下显示产品。我还需要为每个类别的产品添加分页。我尝试了以下解决方案,并获得了所有类别,但我只获得了一个类别的产品,而其他类别的产品为空。
$this->category->with(['products' => function ($query) {
$query->paginate(3);
}])->get();
答案 0 :(得分:0)
我相信您想要的是对类别进行分页,但只是对产品的类别进行分页。阅读whereHas
(https://laravel.com/docs/8.x/eloquent-relationships#querying-relationship-existence)。
示例代码:
$this->category->with([
'products' => function ($query) {
$query->limit(3);
}
])
->whereHas('products')
->paginate(10);
如果您不想限制 3 个产品,那么只需从 with
数组中删除闭包即可。
如果您知道您的类别不会太多,则可以完全删除分页(从而检索数据库中的所有类别,但仅检索包含产品的类别)。