Я строю форум. У меня есть две модели: Тема и Отчет.
Разные пользователи могут пожаловаться на поток несколько раз.
Я работаю над страницей для отображения тем, о которых сообщили модераторы.
Теперь проблема заключается в том, что я бы сгруппировал отчеты по потокам, чтобы он показывал, сколько раз сообщалось об одном потоке, и один и тот же поток не появляется несколько раз, если о нем сообщалось несколько раз.
Таблица отчетов:
$table->increments('id');
$table->unsignedInteger('thread_id');
Таблица потоков:
$table->increments('id');
$table->string('title', 500);
Отчеты о взаимоотношениях -> Темы
public function thread() {
return $this->hasOne(Thread::class, 'id');
}
Итак, я делаю это:
Report::with('thread')
->groupBy('thread_id')
->get();
Однако я получаю эту ошибку:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'reports.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from `reports` group by `thread_id`)
Есть идеи, как это исправить или подойти к нему по-другому? Спасибо!