php - Get reply which having most vote in laravel -
i have reply relationship & unlike model. user can best reply , unlike bad reply. & unlike relationship same,just store in different table. want replies having & reply having unlike, compare them , show replies have number of vote. how can achieve it?
in discussion model
public function replies(){ return $this->hasmany('app\forum\reply'); }
in reply model
public function discussion(){ return $this->belongsto('app\forum\discussion'); } public function user(){ return $this->belongsto('app\user'); } public function likes(){ return $this->hasmany('app\forum\like'); }
in model
public function user(){ return $this->belongsto('app\user'); } public function reply(){ return $this->belongsto('app\forum\reply'); }
i think can use eloquents withcount
here.
so you'd have like:
$mostlikedreply = reply::withcount('likes')->orderby('likes_count', 'desc')->first(); $mostunlikedreply = reply::withcount('unlikes')->orderby('unlikes_count', 'desc')->first();
note withcount
place {relation}_count
column on resulting models. that's why orderby
ordering on withcount
applies, grabbing first result, should highest liked/unliked reply, here can compare need.
read more counting relations here
Comments
Post a Comment