首页 > 解决方案 > Laravel 6:如何在我的视图中使用 Group By?

问题描述

我正在尝试按 SKU 对我的产品进行分组,但它返回了错误的值

控制器:

$pro = Product::groupBy('sku')->latest()->paginate(25);
    

@foreach ($pro as $sku => $p)
<p>{{$p['sku']}}</p>
<ul class="list-unstyled">
@foreach($p as $product)
<li><a href="{{route('admin.product.view',[$p['id']])}}">{{$p['name']}}</a></li>
@endforeach
</ul>
@endforeach

在数据库中,我注册了这些产品: 数据库

但是,它向我返回了多个值

倍数值的图像

我需要它像这样分组:

正确组

标签: laravelgroup-bylaravel-bladelaravel-6

解决方案


这可能会解决您的问题:

$skus = Product::latest()
    ->offset(0)
    ->limit(25)
    ->get()
    ->groupBy('sku');

在您看来:

@foreach ($skus as $sku => $products)
    <p>{{$sku}}</p>
    <ul class="list-unstyled">
        @foreach($products as $product)
            <li><a href="{{route('admin.product.view',[$product['id']])}}">{{$product['name']}}</a></li>
        @endforeach
    </ul>
@endforeach

推荐阅读