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

问题描述 投票:0回答:1

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

php laravel
1个回答
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();

我希望你能理解。

© www.soinside.com 2019 - 2024. All rights reserved.