Cómo registrar consultas en Laravel
¿Estás buscando imprimir la consulta en Laravel? O en otras palabras, ¿quieres registrar consultas en Laravel? Ambas preguntas tienen respuestas ligeramente diferentes. Para imprimir la consulta, puede imprimir la última consulta ejecutada y mostrarla en un navegador. Pero te recomendaría que registres la consulta en Laravel. Al hacerlo, todas sus consultas se guardarán en el archivo de registro y podrá verlas en cualquier momento.
En este artículo, le muestro ambas opciones que ayudan a un usuario a ver las consultas en su aplicación Laravel.
Cuando está desarrollando una aplicación Laravel, a veces puede encontrarse con una situación en la que necesite ver si la consulta escrita es correcta o no. Esto se debe a varias razones: tal vez los usuarios no obtienen un resultado esperado, usted obtiene una respuesta lenta de un servidor de base de datos o no obtiene ningún resultado como algo incorrecto en su consulta, etc. En todos estos escenarios, Si está registrando la consulta, ayudará a depurar el problema.
¿Cómo imprimir consultas en Laravel?
Imprimir la última consulta ejecutada es un proceso de una sola vez. Es posible que deba imprimir su consulta en el navegador. No almacena la consulta en ningún lugar. A continuación se muestra un ejemplo simple para imprimir su consulta en Laravel.
DB::enableQueryLog();
$arr_user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());
Aquí he usado dos declaraciones DB::enableQueryLog()
y dd(DB::getQueryLog())
. La primera declaración habilita el registro de consultas, mientras que la segunda declaración realmente imprime este registro en el navegador. Esta técnica de depuración también funciona con Laravel Eloquent.
Se puede utilizar este método si no se desea registrar consultas. Pero como se dijo anteriormente, esta no es una forma conveniente. Porque, si sigue esta técnica, entonces necesita repetir estas dos declaraciones DB::enableQueryLog()
y dd(DB::getQueryLog())
para cada consulta.
La mejor opción es registrar todas las consultas en el archivo de registro.
Consulta de registro en Laravel
Recomiendo una técnica de registro de consultas en Laravel. Es una forma más fácil y conveniente para los desarrolladores. No es necesario ir al lugar de cada consulta y escribir el código para el registro.
En su lugar, solo necesita editar AppServiceProvider.php
y listo.
Abra el app/Providers/AppServiceProvider.php
archivo y agregue 2 fachadas para ‘Archivo’ y ‘DB’ de la siguiente manera.
use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;
A continuación, en el boot()
método, escriba un código a continuación que registrará todas sus consultas de Laravel en segundo plano.
public function boot()
{
if(env('APP_DEBUG')) {
DB::listen(function($query) {
File::append(
storage_path('/logs/query.log'),
$query->sql. ' ['. implode(', ', $query->bindings). ']'. PHP_EOL
);
});
}
}
Ahora, siempre que se ejecute una consulta, se registrará automáticamente en el storage/logs/query.log
archivo. El usuario puede ver directamente sus consultas en este query.log
archivo.
En Laravel, hay una forma más disponible para registrar las consultas. De esta manera, los registros de consultas se almacenan dentro del storage/logs/laravel.log
archivo. Para hacerlo, debe colocar el siguiente código en su routes/web.php
archivo.
DB::listen(function($sql) {
Log::info($sql->sql);
Log::info($sql->bindings);
Log::info($sql->time);
});
¡Eso es! Ahora, depende de usted utilizar uno de los métodos anteriores para registrar las consultas. No es necesario utilizar ambos métodos a la vez.
Se trata de registrar las consultas en Laravel. Espero que este artículo sea de utilidad para su aplicación. Comparta sus pensamientos y sugerencias en la sección de comentarios a continuación.
Artículos relacionados
- Cómo crear una página de error 404 personalizada en Laravel
- Cómo integrar el boletín de MailChimp en la aplicación Laravel