如何从Laravel 5.2中的数据库中选择以范围(A-Z)开头的属性?

时间:2017-03-20 19:00:00

标签: laravel-5.2

如何从数据库中选择以范围(A-Z)开头的属性并将它们存储在一个变量中,以便在Laravel5.2中按字母顺序显示?

这是我的代码,但我无法得到我想要的结果。

for ($char = 'A';$char<= 'Z';$char++)
    {

        $viewAll = Product::where('p_name' , 'like',$char.'%')->get();

    } return view('inventory.index',['product'=>$viewAll]);

1 个答案:

答案 0 :(得分:0)

我建议在SQL中对产品进行排序,然后使用Collections groupBy()按照第一个字母对结果进行分组。

// Get all the products sorted by name
$viewAll = Product::orderBy('p_name')->get();

// Group them by letter
$viewAll = $viewAll->groupBy(function($product) {
    return substr($product['p_name'], 0, 1);
});

// resulting array will be 
// [
//      'a' => [{p_name: 'apple'}, ...],
//      'b' => [{p_name: 'banana'}, ...],
//      'c' => [...]
// ]
相关问题