2017-10-15 151 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'); 
}