2017-10-15 77 views
0

我有一个论坛和论坛响应模型与下面的数据库表:通过使用组和laravel雄辩算

forum.id 

forum_response.id 
forum_response.forum_id 
forum_response.user_id 
forum_response.text 

论坛模型关系是:

public function responses() 
{ 
    return $this->belongsToMany(ForumResponse::class, 'forum__responses'); 
} 

和论坛反应关系:

public function Forum() 
{ 
    return $this->belongsTo(Forum::class); 
} 

我想获得特定论坛的唯一回复数,按user_id。我已经尝试过以下return $this->hasMany(ForumResponse::class)->groupBy('user_id')->count();,但是这会返回比我预期更高的值。

回答

0

即使我觉得你的结构有问题。但是现在,你的关系中有一个错误。只要改变belongsToMany到的hasMany

改变这种

public function responses() 
{ 
    return $this->belongsToMany(ForumResponse::class, 'forum__responses'); 
} 

这个

public function responses() 
{ 
    return $this->hasMany(ForumResponse::class, 'forum__responses'); 
}