2017-03-20 2 views
0

데이터베이스에서 범위 (A-Z)로 시작하는 속성을 선택하고 Laravel5.2에서 사전 순으로 표시 할 하나의 변수에 저장하는 방법은 무엇입니까?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로 시작하는 제품 이름은 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' => [...] 
// ]