2016-08-17 9 views
0

group by를 사용하면 결과가 그룹화되지만 모든 결과가 반환되지는 않습니다. 여기에 여섯 가지 결과가 있지만 나는 다섯 가지 결과 만 얻습니다. 따라서 기본적으로 room_id = 17103을 가져오고 106 엔트리는 반환되지 않습니다. 여기 Laravel - Eloquent group by

Data

내가 뭐하는 거지입니다 :

$prices = $hotel->prices()->groupBy('room_id')->get(); 
+0

물론 'GROUP BY'와 같습니다. 달성하고자하는 것은 무엇입니까? –

+0

@ThomasVanderVeen 5 개의 결과를 얻고 싶습니다. 둘 중 하나에 두 개의 결과가 포함되어 있습니다. 둘 다 같은 'room_id' – omarsafwany

답변

0

은 당신이 원하는 것처럼 그룹화하는 방법이있다. 쿼리를 실행할 때을 컬렉션 설득력에 사용할 수 있습니다. 트릭은 데이터베이스 검색 후 groupBy()입니다. 자세한 내용은 this을 확인하십시오.

예는 다음과 같을 것이다 :이 배열의 키는 room_id을 나타냅니다

[ 
    '39' => [ 
     // 1 row 
    ], 
    '40' => [ 
     // 1 row 
    ], 
    '17' => [ 
     // 2 rows 
    ], 
    ..... 
] 

:이처럼 보이는 컬렉션됩니다

$prices = $hotel->prices()->get(); // Returns a Collection of results 

$prices = $prices->groupBy('room_id'); // Grouped by room_id 

. 모든 키에서이 배열은 지정된 room_id가있는 행을 포함하는 다른 배열입니다.

희망이 있습니다.