У меня есть следующие модели:
Вопрос: [название, 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()
и дает мне общее количество пользователей, которые добавили ответ (включая дубликаты).
Любая идея, как я могу это исправить?