Formas de Ver Consultas SQL en Laravel

- Andrés Cruz

In english

Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos Curso y libro Laravel 11 con Tailwind Vue 3, introducción a Jetstream Livewire e Inerta desde cero - 2024.

En esta entrada, te traigo varias formas en las cuales puedes ver las consultas SQL realizadas por petición, cuando creamos una app en Laravel, muchas peticiones pueden ser realizadas por nosotros o internas por Laravel, al tener una gran libertad al momento de crear nuestras peticiones, es muy probable que nos equivoquemos en algunas partes y hagamos consultas mal optimizadas y el primer paso para corregir estos problemas, es ver la consulta.

Método 1: Sistema de Registro Incorporado de Laravel

Mediante el método DB::listen puedes escuchar los eventos de consulta a la base de datos y hacer lo que quieras con esto, como registrar las consultas en un log o verlos por pantalla.

use Illuminate\Support\Facades\DB;

public function boot()
{
    DB::listen(function ($query) {
        \Log::info($query->sql, ['bindings' => $query->bindings, 'time' => $query->time]);
    });
}

O en las rutas:

routes/web.php

DB::listen(function ($query){
    echo $query->sql;
  //  Log::info($query->sql, ['bindings' => $query->bindings, 'time' => $query->time]);
});

Método 2: Paquete Laravel Debugbar

Laravel Debugbar es una herramienta por excelencia para hacer debug en la app, nos da muchos información sobre lo que está pasando y entre ellas, la consultas SQL, también nos da el tiempo de ejecución:

composer require barryvdh/laravel-debugbar

Método 3: Utilizando Laravel Telescope

Laravel Telescope es la oficial del equipo de Laravel para realizar depuración y monitoreo, viene siendo el paquete anterior, pero, con vitaminas:

composer require laravel/telescope

Luego, ejecuta el comando de instalación y migración de Telescope:

php artisan telescope:install
php artisan migrate

Método 4: Utilizando el Método toSql

El método toSql convierte la consulta de Eloquent en un texto en SQL para que podamos ver como traduce internamente laravel una consulta a SQL y poder analizarla, es ideal para hacer debug:

$sql = DB::table('posts')->where('posted', true)->toSql();

Método 5: Utilizando el Método DB::getQueryLog

Otro esquema es empleando el DB::getQueryLog para obtener todas las consultas SQL ejecutadas durante la solicitud actual. Por ejemplo:

DB::enableQueryLog();
// Realiza algunas operaciones de consulta
$queries = DB::getQueryLog();

Esto devolverá un arreglo con todas las consultas SQL ejecutadas.

Estas son solamente algunas formas que puedes implementar en tu código para ver el SQL de las consultas realizadas.

Andrés Cruz

Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz En Udemy

Acepto recibir anuncios de interes sobre este Blog.