При работе с Eloquent бывает нужно посмотреть какой запрос генерирует orm, но как это сделать непонятно. Пару простых способов мы сейчас рассмотрим.
QueryLog
DB::enableQueryLog(); User::where('id', '>', 5)->get(); dd(DB::getQueryLog());
Самый простой способ, перед запросом включаем лог запросов и сразу после запроса делаем дамп.
toSql()
$users = User::where('id', '>', 5)->toSql(); echo $users;// or dd($users)
Отобразит запрос но без биндингов (значений которые в выражении where)
dd() / dump()
User::where('id', '>', 5)->dd(); // or User::where('id', '>', 5)->dump();
Если вы используете laravel 5.8, вам доступны методы dd()
/ dump()
.
Есть ещё варианты:
1. Laravel Telescope (https://laravel.com/docs/8.x/telescope) — пишет не только логи, а вообще всё отображает.
2. https://github.com/mnabialek/laravel-sql-logger — он сам записывает все запросы в файлы с учётом биндингов.