laravel

时间:2018-02-04 06:33:17

标签: php laravel laravel-query-builder

我尝试根据他们的类别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分开面板。

截图

screen1

更新

我将查询更改为:

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获取它们,以便根据其类别对它们进行分组。

更新2

我设法得到了我想要的数据,除了我不能在我的循环中获得类别标题,这对我很重要。 这是我的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

这就是它的样子:

screen2

  

现在我需要的是将categories title作为每个小组的标题。   但如果我使用$ki->category->title$key->title等,我会收到错误。

任何想法?

0 个答案:

没有答案