Просмотр SQL запросов
При работе с построителем запросов иногда бывает нужно посмотреть, какой SQL запрос совершается к базе, для этого есть различные способы.
Debugbar
Самый лучший способ - это установить панель debugbar и отслеживать запросы через нее. Для этого нужно перейти на вкладку Queries.
QueryLog
Перед запросом включаем лог запросов и сразу после запроса делаем дамп:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
DB::enableQueryLog();
DB::table('posts')->where('id', '>', 5)->get();
dump(DB::getQueryLog());
}
}
toSql
Следующий способ также отобразит запрос, но без подставления переменных в условие запроса:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
$query = DB::table('posts')->where('id', '>', 5)->toSql();
dump($query);
}
}
Дамп
Можно посмотреть запрос через метод dd
:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
DB::table('posts')->where('id', '>', 5)->dd();
}
}
Можно также посмотреть запрос через метод dump
:
app/Http/Controllers/PostController.php<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB; // подключаем фасад DB
class PostController extends Controller
{
public function show()
{
DB::table('posts')->where('id', '>', 5)->dump();
}
}