我使用laravel-page-view-counter来计算我的产品的访问次数并且工作正常,我需要做的是通过他们的访问获得前十大产品的列表(获得10个产品)访问次数最多的人。)
这就是我所拥有的:
$visits = Product::join('page-visits', function ($join) {
$join->on('products.id', '=', 'page-visits.visitable_id');
})->get();
$sorted = $visits->sortBy(function ($product, $key) {
return count($product['visits']);
});
但它从最低产品访问量返回到最高产品(显示产品0次访问,直到100次访问的产品)我需要反向显示(首先是100次访问的产品)。
答案 0 :(得分:3)
您可以使用查询构建器和一些原始查询轻松完成此操作:
$visits = DB::table('products')
->join('page-visits','products.id','=','page-visits.visitable_id')
->select(DB::raw('count(visitable_id) as count'),'products.*')
->groupBy('id')
->orderBy('count','desc')
->take(10)
->get();
我希望你能理解。