【问题标题】:How to fetch unique values for a single column in Laravel 5.2?如何在 Laravel 5.2 中获取单个列的唯一值?
【发布时间】:2016-12-13 15:20:04
【问题描述】:

在我的products 表中,每个Product 都有一个名为retailer 的列。在我看来,我正在尝试从表中获取并显示该 retailer 列的所有 unique 值。请注意,我只需要一个单列的不同值,即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

但这没有用。

:我在这里做错了什么?有没有更有效的方法来解决这个问题?在这种情况下,使用 Query Builder(而不是 Eloquent)会更好吗?

谢谢!

【问题讨论】:

  • 你试过->distinct('retailer')
  • 这也应该有效:$products->unique('retailer')->pluck('retailer');无需单独查询。

标签: laravel eloquent


【解决方案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
}

【讨论】:

  • 有什么方法可以循环遍历 $products 数组而不是通过视图传递?
猜你喜欢
  • 2018-03-23
  • 2014-11-26
  • 2017-03-27
  • 2018-08-05
  • 2017-05-08
  • 1970-01-01
  • 2016-11-07
  • 1970-01-01
  • 2016-10-02
相关资源
最近更新 更多