データベースからトレンドの記事を返すクエリを開発しようとしています。
トレンド記事は、過去 24 時間で最も多く閲覧された記事に基づいています。これまでのコードは次のとおりです。
$trending = Article::whereHas('view', function ($query) {
$query->where('created_at', '>=', Carbon::now()->subHours(24));
})
->with('view')
->orderBy('created_at', 'DESC')
->get();
return $trending;
}
記事モデルには次の関係があります。
public function view()
{
return $this->hasMany('ArticleView', 'article_id');
}
クエリは機能しますが、ビュー数で記事を並べ替える必要があります。たとえば、現在トレンドになっている記事が表示されますが、閲覧回数が最も多い記事は最初から最後まで並べられていません (明らかに、created_at によって並べ替えられています)。
助けていただければ幸いです