Как исправить имя столбца, которого нет в группе, с помощью laravel?

#php #laravel

Вопрос:

Я сталкиваюсь с этой ошибкой в течение последних 2-3 дней. Я держу эту задачу, чтобы проверить это позже в свободное время. Но все равно я получаю ту же ошибку. Пожалуйста, помогите мне найти ошибку. Я устал проверять все решения в Google. Но ничего не работает.

Ошибка

ОсветитьБаза данныхИсключение запроса: SQLSTATE[42000]: Синтаксическая ошибка или нарушение доступа: 1055 ‘dating-app.messages.id’ не входит в ГРУППУ ПО (SQL: выберите * из messages группы по room_id наличию is_read = 0) в файле C:xampphtdocsdating-appvendorlaravelframeworksrcIlluminateDatabaseConnection.php на линии 692

Вот мой вопрос

 $messages = Message::groupBy('room_id')->having('is_read', 0)->get();
return response()->json(['status' => true, 'message' => $messages]);`
 

Любое решение приветствуется!

Ответ №1:

Это связано с тем, что любой столбец, используемый в инструкции select, должен отображаться в предложении group by. Так select * что и group by не ладите. Устранитесь groupBy('room_id') в своих отношениях и посмотрите, как это пойдет.

В качестве альтернативы отключите строгий режим MySQL, войдя в config/database.php и настройка strict => false для MySQL, если вы используете MySQL версии >5.7.

Источник