2017-06-15 16 views
0

私は人々がコメントを作って、それらのコメントのように与えることができるセクションを得た。 私は好きな人の数に基づいてコメントを整理したいと思っています。関係数で注文クエリlaravel 4.2

ので、私はこれがモデル

<?php 

class Comment extends Eloquent { 
    public function likes() 
    { 
     return $this->hasMany('CommentsLike','comment_id'); 
    } 
    //here i take the count of likes, if i use ->count() it throw 
    public function likesCount() 
    { 
     return $this->likes() 
     ->groupBy('comment_id') 
     ->selectRaw('comment_id,count(*) as comment_likes'); 
    } 
} 

どのように私はlikesCount

答えて

0

使用のOrderBy()で得たものに基づいて、私のコメントを並べ替えることができているこの

$art = Article::with('category') 
->with(array('comments' => function($comments){ 
    //i get the comments related to the article and the count of likes it has 
    $comments->with('likesCount'); 
})) 
->find($id); 

のようなものを使用likesCount()機能。

public function likesCount() 
{ 
    return $this->likes() 
    ->groupBy('comment_id') 
    ->selectRaw('comment_id,count(*) as comment_likes') 
    ->orderBy('comment_likes', 'desc'); 
}