如何在Laravel 5.2中获取单个列的唯一值?

时间:2016-08-07 22:42:01

标签: laravel eloquent

在我的products表格中,每个Product都有一个名为retailer的列。在我看来,我正在尝试从表中获取并显示该retailer列的所有唯一值。请注意,我只需要一列的不同值,即retailer。这是我的尝试:

@foreach(\App\Product::select('retailer')->groupBy('retailer')->get() as $retailer)
    {{$retailer->retailer}}
@endforeach

Here我已经读过groupBy('retailers)会获得唯一值。这确实有效,但由于我将数组$products传递给包含所有产品的视图,我认为循环$products会更有效:

 @foreach($products->select('retailer')->unique() as $retailer)
     {{$retailer}}
 @endforeach

但这没有用。

:我在这里做错了什么?有没有更有效的方法来解决这个问题?在这种情况下,使用查询生成器(而不是Eloquent)是否更好?

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试

@foreach(App\Product::distinct()->get(['retailer']) as $product)
    {{$product->retailer}}
@endforeach

修改

当然可以。在您的控制器中

$products = App\Product::distinct()->get(['retailer']);
foreach($products as $product) {
    // do your magic
}