2017-12-20 7 views
0

私はlaravel-page-view-counterを使用しています。私の製品の訪問数をカウントしています。私がする必要があるのは、訪れた上位10製品のリストを取得することです訪問回数)。ここでLaravelで最大額で値を取得

は私が持っているものです。

$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']); 
}); 

しかし、それは(それは100回の訪問を持つ製品まで0訪問して製品を示して)最高1に、最低の製品の訪問から戻る私は、製品(表示するにはその逆の方法を必要とします最初に100回訪問)。

+0

簡単な生のクエリを使うとわかりやすくなります。 –

+0

@SagarGautam '$ visits'私の製品は' page-visits'テーブルにあります。 '$ sorted'私の' $ visits'クエリをソートしました。それは難しいですか? – mafortis

+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(); 

私はあなたが理解を願っています。

+0

それはうまくいっているようですが、今は私が各製品の訪問数を得ることができません。 '{{$ visit-> page_visits_formatted}}'のような訪問を得る前に、未定義のプロパティ:stdClass :: $ page_visits_formatted'を実行してください。 – mafortis

+0

'{{$ visit-> count} page_visits_formatted}} 'カウントにはクエリの合計訪問回数が含まれています(これは –

+0

を上回って追加されました。このカウントはフォーマットされているかどうかですか? '1000'のようなものではない場合は '1.000'のようになります。 – mafortis

関連する問題