Laravel框架with查询限制数量

前提需求

// 商品分类表模型
ProductCategoryModel
字段:id, category_name
// 商品表模型
ProductModel
字段:id, category_id, product_name, sales

分类与商品是一对多关系
-- ProductCategoryModel
public function products()
{
    return $this->hasMany(ProductModel::class, 'category_id', 'id');
}

现查询所有的商品分类和各分类下的3个销量最高的商品

错误写法

ProductCategoryModel::query()
->with(['products' => function($query) {
    $query->orderByDesc('sales')->limit(3);
}])
->get()->toArray();

正确写法

ProductCategoryModel::query()
->with(['products' => function($query) {
    $query->orderByDesc('sales');
}])
->get()
->map(function($item) {
    $item->setRelation('products', $item->products->take(3));
    return $item;
})
->toArray();
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容