Просмотр SQL запросов в Laravel

При работе с построителем запросов иногда бывает нужно посмотреть, какой SQL запрос совершается к базе. Для этого есть различные способы.

Через Debugbar

Самый лучший способ - это установить панель debugbar и отслеживать запросы через нее. Для этого нужно перейти на вкладку Queries.

Через QueryLog

Перед запросом включаем лог запросов и сразу после запроса делаем дамп:

<?php class PostController extends Controller { public function show() { DB::enableQueryLog(); DB::table('posts')->where('id', '>', 5)->get(); dump(DB::getQueryLog()); } } ?>

Через toSql

Следующий способ также отобразит запрос, но без подставления переменных в условие запроса:

<?php class PostController extends Controller { public function show() { $query = DB::table('posts')->where('id', '>', 5)->toSql(); dump($query); } } ?>

Дамп

Можно посмотреть запрос через метод dd:

<?php class PostController extends Controller { public function show() { DB::table('posts')->where('id', '>', 5)->dd(); } } ?>

Можно также посмотреть запрос через метод dump:

<?php class PostController extends Controller { public function show() { DB::table('posts')->where('id', '>', 5)->dump(); } } ?>

Практические задачи

Дан следующий запрос:

<?php DB::table('posts')->where('id', '!=', 3)->get(); ?>

Посмотрите различными способами, какой SQL запрос выполняется на самом деле.

Определите, за какое время был выполнен приведенный запрос.