##やりたいこと
[table]fruits
id | fruits | price |
---|---|---|
1 | りんご | 100 |
2 | みかん | 200 |
3 | りんご | 100 |
4 | ぶどう | 400 |
5 | りんご | 100 |
6 | みかん | 200 |
7 | ぶどう | 400 |
8 | ばなな | 50 |
上記のようなテーブルがあると仮定して、
複数データが存在するフルーツを多い順に並び替え、価格も紐付けてデータを取得したい場合の方法を知りたく質問させていただきました。
##試したこと
php
1public function fruitsRanking() 2 { 3 $fruits = Fruits::select('fruits', DB::raw('count(*) as total')) 4 ->groupBy('fruits')->having('total', '>', 1) 5 ->orderBy('total', 'desc') 6 ->limit(3)->get(); 7 8 return $fruits; 9 }
結果:dd()で確認
Illuminate\Database\Eloquent\Collection {#1518 ▼ #items: array:3 [▼ 0 => App\Models\Fruit {#1517 ▶ //略 #attributes: array:2 [▶] #original: array:2 [▼ "fruits" => "りんご" "total" => 4 ] //略 } 1 => App\Models\Fruit {#1516 ▶} 2 => App\Models\Fruit {#1515 ▶} ] }
上記のコードを試し、fruitsを数が多い順にTOP3まで取得しbladeで表示させることはできたのですが、取得したfruitsのprice値を得る方法が思い浮かばず、この場をお借りしてお知恵を拝借したく、質問させていただきました。
何卒、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/27 09:01
退会済みユーザー
2021/04/27 09:05
2021/04/27 12:00