查询以加载子类别或产品

时间:2016-07-25 11:01:42

标签: php laravel-4

我试图在用户点击下一页的main category加载所有子类别但是如果没有分配给此主类别的子类别来显示所有分配到主类别的产品时尝试创建它。

我到目前为止尝试的是:我的控制器:

public function showSubCats($categoryId) {
     $ifNoSubCategory = Categories::with('products')->get();             
     $subcats = SubCategories::where('category_id', '=', $categoryId)->get();
     return View::make('site.subcategory', [            
          'subcats' => $subcats,
          'ifNoSubCategory' => $ifNoSubCategory
     ]); 
}

这是视图

@if(count($subcats) > 0)
  @foreach($subcats as $i => $subcategory)

      // looping sub categories assigned to main category

  @endforeach
@else
   @foreach($ifNoSubCategory as $i => $singles)

      // looping products assigned to main category

   @endforeach
@endif

正在发生的事情是,如果有子类别,它们在页面上正确显示,但如果没有子类别,则显示产品的框但不加载产品名称,图像,价格等。只是空的html结构..

当我dd($ifNoSubCategory)向我显示必须在页面上的正确数据时..

我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

我假设您查询表products,并在控制器中通过category_id检查以下查询。然后尝试从以下位置更改您的查询:

$ifNoSubCategory = Categories::with('products')->get();

为:

$ifNoSubCategory = DB::table('products')->where('category_id', '=', $categoryId)->get();