2017-05-09 19 views
0

我有一个应答模型Laravel计数使用雄辩的两个表

public function upvote_answers() 
    { 
     return $this->hasMany('App\UpvoteAnswer'); 
    } 

而且我也有一个UpvoteAnswer型号

public function answer() 
    { 
     return $this->belongsTo('App\Answer'); 
    } 

我有一个名为upvote_answers具有列如表之间ID,user_id,answer_id(不同的答案表,这个ID是参考该表)和给予好评(这是布尔值1或0)

我想给予好评和downvote个别答案的数量,使得我有这样

$answer = UpvoteAnswer::find($answerid) ; 
$counting = $answer->upvote_answers->count(); 
echo $counting; 

我试图呼应总数为一个答案,但完成这似乎不工作,我正在尝试做急切的加载,我该如何建立这个?

回答

2

答型号:

public function upvote_answers() 
{ 
    return $this->hasMany('App\UpvoteAnswer', 'answer_id', 'id')->where('upvote', 1); 
} 

public function downvote_answers() 
{ 
    return $this->hasMany('App\UpvoteAnswer', 'answer_id', 'id')->where('upvote', 0); 
} 

然后你可以指望这样的:

$upvote = $answer->upvote_answers->count(); 
$downvote = $answer->downvote_answers->count(); 
+0

如果它解决您的问题,它标记为答案,请 – MohamedSabil83

+0

这是不行的,它说尝试获得非对象 – waq

+0

的财产,它的工作,Thankyou – waq