An easy way to print Laravel queries
// Enable query log
\DB::enableQueryLog();
// Use whatever queries you want to debug:
User::where('email', '[email protected]')->where('verified', true)->first();
User::where('id', '<', '5')->get();
// See what the queries were executed
\QueryPrinter::printQueryLog();
Now you can simply copy and execute the query without struggling with bindings ๐
composer require loburets/laravel-query-printer
For Laravel < 5.5, add the alias in config/app.php
:
'QueryPrinter' => Loburets\LaravelQueryPrinter\Facade::class,
You can print a query before execution:
// Build your query, but don't call ->first(), ->get() etc. So it is an instance of the Query Builder here:
$query = \Model::where()->join()->etc();
// Print the generated SQL
\QueryPrinter::print($query);
You can also print queries after they have been executed:
// Enable the Query log:
\DB::enableQueryLog();
// Do any actions which you want to be logged:
$results = \Model::where()->join()->etc()->get();
// Print all the executed queries
\QueryPrinter::printQueryLog();
Now debugging Laravel queries is easier than ever! ๐ฏ