在 laravel 的主要类别中显示子类别产品

Display subcategory products in main category in laravel

我的项目有主类别 - 子类别和产品。 每个产品都有一个 subcategory_id,每个子类别都有一个 category_id.

现在的问题是如何select并显示与主要类别相关的产品。 通过关系,我得到子类别产品,如 $subcat->Product,或主类别的子类别,如 $cat->Subcateogry,但我不知道如何获取主类别的产品。

清除更多:
品类(数码商品)
--子类别(笔记本电脑、手机、电视)
----产品(l1,l2,m1,m2,t1,t2)

在笔记本电脑子类别视图中,我们有 l1 和 l2,但如何在主要类别(数字商品)中显示它们。

如果您的关系设置正确,您可以使用:

nested eager loading

$allProductInMainCategory=MainCategory::where('id',$mainCategoryId)->
with('subCategories.products')->get();

另一种选择是使用嵌套 whereHas

    $allProductInMainCategory=Product::whereHas('subCategory',function($query)use($mainCategoryId){
            $query->whereHas('mainCategory',function($q)use($mainCategoryId)
            {
                $q->where('mainCategories.id',$mainCategoryId);
            });
})->get();