You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何获取商家商品时关联返回对应分类信息?

实现Laravel商家商品关联分类信息返回

要在返回商家商品的同时带出分类信息,核心是利用Laravel的**预加载(Eager Loading)**机制加载商品与分类的关联关系,具体步骤如下:

1. 修正模型关联方法命名(规范适配)

Laravel关联方法遵循驼峰式小写开头的命名规范,先调整Products.php中的分类关联方法名:

// Products.php
public function category()
{
    return $this->hasOne('App\Models\Category','cat');
}

2. 控制器中预加载分类关联

修改SellerController.php的products方法,通过with('category')预加载商品对应的分类关联:

// SellerController.php
public function products()
{
    $seller = Auth::user();
    // 预加载products关联的category,避免N+1查询问题
    $products = $seller->products()->with('category')->get();
    return response()->json(['data' => $products], 200);
}

也可以用更简洁的写法(直接从认证用户关联查询,减少一次Seller查询操作):

public function products()
{
    $products = Auth::user()->products()->with('category')->get();
    return response()->json(['data' => $products], 200);
}

效果说明

修改完成后,返回的JSON数据中每个商品对象会新增category字段,包含对应的分类信息。同时预加载机制能避免循环查询商品时重复查询分类的N+1性能问题。

内容的提问来源于stack exchange,提问作者Jack The Baker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:10:20