2017-05-20 14 views
0

コメントがある記事があります。 7日間に受けたレビューに基づいて私のホームページに5つの人気アイテムを投稿したいと思います。 Laravelでこれを行うことは可能ですか?私はどのようにクエリビルダを扱うかわかりません。Laravelで7日後に最もコメントの多い5件の記事を取得

私は各コメントにarticle_idを持っています。

$mostPopular = Article::published()->whereHas('comments', function ($query){ 
     $query->count(); 
    })->orderBy($query, 'ASC'); 

ありがとう!

答えて

2

未テストですが、条件を満たしている必要があります。問題がある場合は教えてください。

$popularArticles = Article::published() 
    ->whereHas('comments') 
    ->withCount('comments') 
    ->where('created_at', '>', \Carbon\Carbon::now()->subWeek()) 
    ->orderBy('comments_count', 'DESC') 
    ->take(5) 
    ->get(); 
+0

こんにちは@Sandeesh、このソリューションはしばらくの間しか機能していません。 7日後、記事は無視されます。私はなぜなのか理解していない。解決策はありますか? (私は7日以上受け取ったコメントと比較して最も人気のある記事を表示したいが、私は以前の記事を無視したくない) –

関連する問題