我尝试根据他们的类别ID将我的产品放在不同的面板中,而不是将它们全部放在一起。
注意:在我获得代码之前我需要解释我的产品不直接连接到我的类别而不是subcategory_id
,子类别将获得category_id
无论如何,我设法按照类别ID获取我的产品,我现在需要的是按类别ID 对它们进行分组。
AppServiceProvider
View::composer('welcome', function ($view) {
$category = DB::table('admin_designs')
->join('categories', 'categories.id', '=', 'admin_designs.category_id')
->join('subcategories', 'subcategories.category_id', '=', 'categories.id')
->join('products', 'products.subcategory_id', '=', 'subcategories.id')
->get();
$view->with('category', $category);
});
blade(view)
<div class="container">
@foreach($category as $sc)
<div class="panel panel-default">
<div class="panel-body">
{{$sc->title}}, <u><b>cat:</b></u> {{$sc->category_id}}, <u><b>sub:</b></u> {{$sc->subcategory_id}}
</div>
</div>
@endforeach
</div>
PS:基本上它必须做的是让每个产品按类别ID分开面板。
我将查询更改为:
View::composer('welcome', function ($view) {
$category = DB::table('subcategories')
->join('admin_designs', 'admin_designs.category_id', '=', 'subcategories.category_id')
->join('products', function ($join) {
$join->on('subcategories.id', '=', 'products.subcategory_id');
})
->get()->toArray();
$view->with('category', $category);
});
现在我可以获得我的产品,但仍然无法通过groupby
获取它们,以便根据其类别对它们进行分组。
我设法得到了我想要的数据,除了我不能在我的循环中获得类别标题,这对我很重要。
这是我的blade
代码:
@foreach($category->groupby('category_id') as $key => $value)
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-body">
@foreach($value as $ki)
{{$ki->title}}, Cat: {{$key}}, Sub: {{$ki->subcategory_id}}<br>
@endforeach
</div>
</div>
</div>
@endforeach
这就是它的样子:
现在我需要的是将
categories title
作为每个小组的标题。 但如果我使用$ki->category->title
或$key->title
等,我会收到错误。
任何想法?