2016-08-17 69 views
0

當我使用group by時,結果被分組,但不是所有的都被返回。在這裏我有六個結果,但我只得到五個結果。所以基本上room_id = 17得到條目103和條目106不返回。Laravel - Eloquent組

Data

下面是我在做什麼:

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

當然,這是一個'GROUP BY'做什麼。你想實現什麼? –

+0

@ThomasVanderVeen我想得到五個結果,其中一個包含兩個結果,因爲它們都具有相同的'room_id' – omarsafwany

回答

0

有沒有像你希望的分組的一種方式。執行查詢時,您可以在集合雄辯返回上使用groupBy()。訣竅是在數據庫檢索之後groupBy()。請查詢this獲取更多信息。

一個例子是這樣的:

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

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

這將導致一個集合,看起來像:

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

這個數組的鍵將代表ROOM_ID。在每個鍵上,這個數組將是包含具有指定的room_id的行的另一個數組。

希望這有助於:)