在Laravel中获得最大金额的价值

时间:2017-12-20 04:12:06

标签: php laravel

我使用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次访问的产品)。

1 个答案:

答案 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();

我希望你能理解。