Laravel 在刀片模板中生成选项列表时使用unique()方法
我需要从数据库中名为Laravel 在刀片模板中生成选项列表时使用unique()方法,laravel,laravel-blade,Laravel,Laravel Blade,我需要从数据库中名为product\u name的列生成表单中的选项列表。我在刀片模板中这样做,如下所示: 单击以选择 @foreach($products as$product) {{$product->product_name} @endforeach 您可以对产品名称和产品描述列的查询进行分组,并获取如下结果- public function index() { $products = Product::select('product_name', 'product_descr
product\u name
的列生成表单中的选项列表。我在刀片模板中这样做,如下所示:
单击以选择
@foreach($products as$product)
{{$product->product_name}
@endforeach
您可以对产品名称和产品描述列的查询进行分组,并获取如下结果-
public function index()
{
$products = Product::select('product_name', 'product_description')
->orderBy('product_name')
->groupBy('product_name', 'product_description')
->get();
return view('products.index', compact('products'));
}
使用order by更新查询。尝试使用Pull
public function index()
{
//Use pluck for selecting only specific column. You can take multiple columns as
well.
$product_names = Product::pluck('product_name');
$products = array_unique($product_names);
return view('products.index', compact('products'));
}
这将返回唯一的产品名称请使用控制器代码更新您的问题,以便我们可以更好地了解问题。您好!我已使用相关的控制器代码更新了我的问题。您可以使用
distinct()
。i、 e.$products=Product::query()->distinct()->get()
或$products=Product::query()->distinct('Product_name')->get()代码>感谢您的反馈。我刚试过这个。我能够成功地删除重复的产品名称。如果我要对它进行排序,我只需添加->sort(),对吗?你可以添加这个来对结果进行排序-->orderBy('column','desc')我已经更新了答案,请看一看,如果它不起作用,请告诉我。它工作得很好!非常感谢你!我猜unique()
不是处理大多数此类查询的正确方法。如果它对您有效,请将其标记为答案。当只需要一列作为唯一字段时,可以使用distinct。
public function index()
{
$products = Product::pluck('product_name', 'product_name')
->toArray();
return view('products.index', compact('products'));
}