簡體   English   中英

歸還Laravel中的所有孫子

[英]Returning all the grandson in Laravel

在我的模型中,我有這些關系:

  • 類別 -> 子類別:hasMany
  • 子類別 -> 類別:屬於
  • 子類別 -> 產品:hasMany
  • 產品 -> 子類別:屬於
  • 類別 -> 產品:hasManyThrough

我想通過子類目表展示一個類目的所有產品。

所以,我寫了這段代碼,但我在 dd($products) 處遇到了問題,因為只得到了一個產品。

你能幫我解決我的代碼中的問題嗎?

        public function show(Category $category)
        {
             $subcategories = Subcategory::join('categories','subcategories.category_id','categories.id')
            ->where('subcategories.category_id',$category->id)
            ->select('subcategories.id')
            ->get();

// dd($子類別); 給我 3 個不同的子類別 -> 確定

            foreach ($subcategories as $subcategory) {
                $query = Product::where('products.subcategory_id',$subcategory->id)->get();
            }
            $products = $query;

// dd($產品); 只給我 1 個產品(實際上有 4 個產品)-> NOK

            $data = [
                'title'=> $description = $category->title,
                'description'=> $description,
                'heading'=> config('app.name'),
                'category'=>$category,
                'subcategory'=>$subcategories,
                'products'=>$products,
            ];
            // dd($data);
            return view('category.show', $data)->with('products', $products);

看來您只是重新聲明 $query 變量而不是將其視為數組,這就是為什么只帶一個:

 foreach ($subcategories as $subcategory) { $query[] = Product::where('products.subcategory_id',$subcategory->id)->get(); } $products = $query;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM