введите описание изображения здесь Проблема возникает, когда я добавляю группу в свой запрос ...
Form::select('*')->groupBy('serial_num')->orderBy('id')->Paginate(10);
SQLSTATE [42000]: синтаксическая ошибка или нарушение доступа: 1055 'database.form.id' отсутствует в GROUP BY (SQL: выбрать * из form группы serial_num предел 10 смещение 0)
form
serial_num
Это не относится к Laravel.Вы выбираете неагрегированные столбцы (*) в сочетании с группировкой.
У вас есть два варианта
Более подробное объяснение https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html
Редактировать: Очевидно, Laravel может установить режимы MySQL наа также летать.
Как уже упоминалось в комментариях, вы можете отключить строгий режим в настройках базы данных Laravel, затем Laravel должен соответственно установить режим сервера MySQL, я не нахожу актуальную документацию дляЭто
https://github.com/laravel/laravel/blob/master/config/database.php#L59
https://mattstauffer.com/blog/strict-mode-and-other-mysql-customizations-in-laravel-5-2/
Убедитесь, что вы очистили любой кеш конфигурации после изменения настройки
Перейдите в config \ database.php
Установить
'mysql' => [ 'strict' => false
после того, как вы сохранили, выполните эту команду
php artisan optimize
Если бы вы могли обрабатывать нумерацию страниц самостоятельно, вы могли бы получить результаты, а затем добавить groupBy в коллекцию.
groupBy
$forms = Form::orderBy('id')->get()->groupBy(function ($item, $key) { return $item['serial_num']; });