2017-03-20 6 views
0

データベースから範囲(A〜Z)で始まり、Laravel5.2でアルファベット順に表示する1つの変数に格納する属性を選択する方法は?Laravel 5.2のデータベースから範囲(A〜Z)で始まる属性を選択する方法は?

これは私のコードですが、希望の結果を得ることができませんでした。

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

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

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

'orderBy( '​​p_name')'を使用するのはなぜですか? – jfadich

+0

ありがとうございます。これらのデータを辞書ページビューにどのように表示するのですか?商品名はAで始まり、別々に表示されます。商品名はBで始まり、別々に表示されます。 –

+0

私の答えはあなたの質問を解決しましたか? – jfadich

答えて

0

私はその後Collections groupBy()を使用して最初の文字で結果をグループ化SQLで製品をソートすることをお勧めします。

// 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' => [...] 
// ] 
関連する問題