2016-11-11 77 views
0

我是Laravel的新手,我使用Laravel 5.1。Laravel查詢 - 獲得最暢銷產品

我在數據庫中的表: enter image description here

這是購買ITESM表。我想知道什麼是計算最暢銷的優惠券的最佳方式 - 每購買已voucher_id ...

回答

1

的最好辦法這樣做是利用計數一個單一的查詢,也得到最好的賣家在同一查詢ID:

PurchasedItem::select(DB::raw('COUNT(id) as cnt', 'voucher_id'))->groupBy('voucher_id')->orderBy('cnt', 'DESC')->first(); 
+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

大概可以做這樣的事情,如果你想用雄辯的

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

我寫:$ THEBEST =驗證::用戶() - >銷售() - > sortBy(函數($ sale){ return $ sale-> voucher_id-> count(); },SORT_REGUL AR,true) - > take(1);但得到:調用未定義的方法Illuminate \ Database \ Query \ Builder :: sortBy() –

相關問題