2016-11-11 10 views
0

私はLaravelを使い慣れていて、私はLaravel 5.1を使用しています。Laravelクエリ - ベストセラー商品を取得

私は、データベースにこのテーブルを持っている: enter image description here

これは、購入したITESMためのテーブルです。私はベストセラーのバウチャーを計算するための最良の方法であるかを知りたい - あなたは雄弁

$Voucher = Sales::sortBy(function ($sale) { 
    return $sale->voucher_id->count(); 
    }, SORT_REGULAR, true)->take(1)->get(); 

答えて

1

にする最良の方法を使用したい場合は、すべての購入がvoucher_idたが...

+0

$ thebest = Auth :: user() - > sales() - >これをどう取得するのですか? –

+0

を使用してください: $ thebest = Auth :: user() - > sales() - > select(DB :: raw( 'COUNT(id)as cnt'、 'voucher_id')) - > groupBy( '​​voucher_id') - > orderBy( '​​cnt'、 'DESC') - > first(); –

+0

クラス 'App \ Http \ Controllers \ DB'が見つかりません。 –

1

は、おそらくこのような何かを行うことができますこれを行うと、カウントのために1つのクエリを使用しても、同じクエリでベストセラーのIDを取得している:

PurchasedItem::select(DB::raw('COUNT(id) as cnt', 'voucher_id'))->groupBy('voucher_id')->orderBy('cnt', 'DESC')->first(); 
+0

私が書く:$ thebest =認証::ユーザー() - >販売() - > SORTBY(関数($ sale){ return $ sale-> voucher_id-> count(); }、SORT_REGUL AR、true) - > take(1);しかし、取得:定義されていないメソッドを呼び出します。\ Database \ Query \ Builder :: sortBy() –

関連する問題