2014-03-31 75 views
1

我有帖子和評論表,當然評論屬於帖子。 我想通過評論數量的雄辯來排序帖子。 我該怎麼做laravel?Laravel OrderBy在帖子中的評論

我試圖通過日期命令使用:

Post::orderBy('created_at', 'DESC')->paginate(6); 

我想的一樣,但通過與評論上其他數據庫排序,但它們所連接的模型。

編輯:

我最終現在有此查詢:

$post = Post:: 
     join('comments', 'comments.post_id' , '=', 'posts.id') 
     ->groupBy('posts.id') 
     ->orderBy(DB::raw('COUNT(posts.id)')) 
     ->paginate(6); 

{{$後>作者}}工程... 但我不能得到例如{{$後> comment-> count()}}。在我以前的查詢(上面)中,它起作用。不知道爲什麼。

+0

這可能是你的問題的第一部分可能的幫助: http://stackoverflow.com/questions/19555259/laravel-4-sorting-data –

+0

謝謝你的幫助。很高興看到這一點,但是當我這樣做時,我無法在刀片中使用雄辯,例如:$ post-> author(來自用戶數據庫)當我以這種方式排序時,似乎雄辯的鏈接被破壞。 – NahKolor

+0

你能發表你正在使用的查詢嗎? –

回答

0

This answer提供幫助。

您應該能夠使用CollectionsortBy()count()方法來做到這一點很容易。

$hackathons = Hackathon::with('participants')->get()->sortBy(function($hackathon) 
{ 
    return $hackathon->participants->count(); 
});