我有一个奇怪的问题,无法理解它的来源。在我的页面上,我有Top Level category
。当我点击顶级类别时,打开的页面包含他们拥有产品的所有子类别。
问题是,如果sub-category_1
中有2个产品,我会在页面上看到两次sub-category_1
。
这是我的控制器
public function showSubCats($categoryId) {
$subcats = SubCategories::select('*', DB::raw('sub_category.sub_cat_id AS sub_cat_id'))
->leftJoin('products', function($join) {
$join->on('products.sub_cat_id', '=', 'sub_category.sub_cat_id');
})
->where('sub_category.category_id', '=', $categoryId)
->whereNotNull('products.sub_cat_id')
->get();
return View::make('site.subcategory', [
'subcats' => $subcats
]);
}
这是视图
@foreach($subcats as $i => $subcategory)
// html
@endforeach
答案 0 :(得分:1)
将您的查询更改为
$subcats = DB::table('sub_category as sc')
->leftJoin('products as p', 'p.sub_cat_id', '=', 'sc.sub_cat_id')//cross check this sc.sub_cat_id may be it si sc.id
->where('sc.category_id', '=', $categoryId)
->whereNotNull('p.sub_cat_id')
->select('*', DB::raw('sc.sub_cat_id AS sub_cat_id'))
->get();