Я просто настроил новый проект, чтобы проверить это. Спецификации таблицы driver
нет, просто добавлено то, что можно вывести. В моем окружении ( laravel7 + mysql) он просто жаловался, что driver.name
не находится в группе. После добавления поля driver_name
для группировки оно работает.
Я думаю, что это не проблема запроса выше. Или вы что-то упустили в вопросе.
Потому что вы не используете created_at
в where
$table->increments('id');
$table->integer('driver_id')->unsigned();
$table->foreign('driver_id')->references('id')->on('driver');
$table->timestamps();
$table->increments('id');
$table->string('name');
$table->integer('users_id');
$table->timestamps();
- прямой вызов в
web
маршрутах
Route::get('/', function () {
$users_id = 1;
$data = DB::table('ride')
->leftJoin('driver', 'ride.driver_id', '=', 'driver.id')
->select([
DB::raw('driver.name as driver_name'),
DB::raw('monthname(ride.created_at) as month'),
DB::raw('year(ride.created_at) as year'),
])
->where("driver.users_id", $users_id)
->groupBy(['year', 'month', 'driver_id', 'driver_name'])
->get()
->toArray();
dd($data);
});