как решить only_full_group_by в laravel eloquent?

когда существует $rating выполняется выборка и сортировка по groupBy

но на хостинге выбивает ошибку что мол групируешь по 1 колонки (painters.id) а в select выбираешь все колонки


$painters = Painter::where('status', '1')
                ->when($rating, function ($query) use ($rating) {
                    return $query
                            ->leftJoin("reviews", "painters.id", "=", "reviews.painter_id")
                            ->select(DB::raw('painters.*'))
                            ->groupBy("painters.id")
                            ->orderByRaw('AVG(reviews.rating)' .$rating);
                }) ->paginate(20);

//сделал так нет ошибок, но в $painters получается только id которые выбраны "select(DB::raw('painters.id'))"
$painters = Painter::where('status', '1')
                ->when($rating, function ($query) use ($rating) {
                    return $query
                            ->leftJoin("reviews", "painters.id", "=", "reviews.painter_id")
                            ->select(DB::raw('painters.id'))
                            ->groupBy("painters.id")
                            ->orderByRaw('AVG(reviews.rating)' .$rating);
                }) ->paginate(20);

тут пишут можно так НО если мы сделаем 'strict' => false, это может привести к ошибке безопасности


    'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]

так как сделать правильно запрос или что?


Ответы (1 шт):

Автор решения: Bohdan

В консоли mysql, в phpmyadmin или через ssh:

SET GLOBAL sql_mode = '';

Но это будет рабоать только до перезагрузки сервиса mysql.

Если добавить в конфиг файл будет всегда работать:

sql_mode = ''
→ Ссылка