我在Laravel 5中實現雄辯有一個叫做groupBy的函數。我通常用它像這樣Laravel 5:如何檢索列中每種數據的10條記錄?
->groupBy('rating');
讓排名列說,有3種類型的整數評級:1,2 and 3
我怎麼把它限制在10條記錄爲每一種等級的?最好使用雄辯,但如果這是不可能的,我仍然會接受查詢生成器方法。
我在Laravel 5中實現雄辯有一個叫做groupBy的函數。我通常用它像這樣Laravel 5:如何檢索列中每種數據的10條記錄?
->groupBy('rating');
讓排名列說,有3種類型的整數評級:1,2 and 3
我怎麼把它限制在10條記錄爲每一種等級的?最好使用雄辯,但如果這是不可能的,我仍然會接受查詢生成器方法。
Union應該工作:
$type1 = Model::whereType(1)->take(10);
$type2 = Model::whereType(2)->take(10);
$type3 = Model::whereType(3)->take(10);
$types = $type1->union($type2)->union($type3)->get();
如果我沒有得到你的問題錯,你的問題MySQL的解決方案將是Get top n records for each group of grouped results
但是,當我們把我們的願望查詢laravel,所以它會看相同:
$Rating1 = Model::whereRating(1)->take(10);
$Rating2 = Model::whereRating(2)->take(10);
$Rating3 = Model::whereRating(3)->take(10);
$result = Model::unionAll($Rating1)->unionAll($Rating2)->unionAll($Rating3)->get();
而且它也是一個查詢不是多個按照laravel 4.2 docs,如果你仍然混淆實施它,讓我知道。
在查詢Eloquent模型時,查詢生成器上可用的所有方法也可用。 –