При работе с построителем запросов иногда бывает нужно посмотреть, какой 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 запрос выполняется на самом деле.
Определите, за какое время был выполнен приведенный запрос.