2017-05-27 48 views
1

我有評論文章。我想根據7天內收到的評論在我的主頁上發佈5個受歡迎的項目。我試過這個:最後七天檢索5條評論最多的文章

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

但是用這種方法,超過7天前創建的文章被「忽略」。我想說的是,最近7天的評論定義了文章是否受歡迎。

非常感謝您

回答

1

您需要過濾統計評論是這樣的:

$popularArticles = Article::published() 
    ->has('comments') 
    ->withCount(['comments' => function ($q) { 
     $q->where('created_at', '>', Carbon\Carbon::now()->subWeek()); 
    }]) 
    ->latest('comments_count') 
    ->take(5) 
    ->get();