У меня есть следующие модели:
Вопрос : [title, user_id]
Ответ : [body, question_id, user_id]
Пользователь : [имя]
Как видите, на вопрос имеется много ответов, и ответ принадлежит пользователю.
Я добавил отношение contributors к модели Question , которое извлекает всех пользователей, добавивших ответ (используя ответы в качестве таблицы объединения):
public function contributors()
{
return $this->belongsToMany(User::class, 'replies')->distinct('user_id');
}
Мне пришлось использовать distinct()
для удаления дубликатов, потому что пользователь может опубликовать много ответов на один вопрос, и это прекрасно работает.
Теперь проблема возникает, когда я делаю:
Question::withCount('contributors')->get()
Он игнорирует вызов distinct()
и дает мне общее количество пользователей, добавивших ответ (включая дубликаты).
Есть идеи, как это исправить?