Como registrar uma consulta no Laravel
Você está querendo imprimir a consulta no Laravel? Ou em outras palavras, você deseja registrar consultas no Laravel? Ambas as perguntas têm respostas ligeiramente diferentes. Para imprimir a consulta, você pode apenas imprimir a última consulta executada e exibi-la em um navegador. Mas eu recomendo que você registre a consulta no Laravel. Ao fazer isso, todas as suas consultas serão salvas no arquivo de log e você poderá visualizá-lo a qualquer momento.
Neste artigo, mostro as duas opções que ajudam o usuário a visualizar as consultas em seu aplicativo Laravel.
Quando você está desenvolvendo um aplicativo Laravel, às vezes você pode se deparar com uma situação em que precisa ver se a consulta escrita está correta ou não. Isso ocorre por vários motivos – talvez os usuários não estejam obtendo uma saída esperada, você esteja obtendo uma resposta lenta de um servidor de banco de dados ou não obtenha nenhuma saída como algo errado com sua consulta, etc. Em todos esses cenários, se você estiver registrando a consulta, isso ajudará a depurar o problema.
Como Imprimir Consulta no Laravel?
A impressão da última consulta executada é um processo único. Você pode precisar apenas imprimir sua consulta no navegador. Ele não armazena a consulta em nenhum lugar. Abaixo está um exemplo simples para imprimir sua consulta no Laravel.
DB::enableQueryLog();
$arr_user = DB::table('users')->select('name', 'email as user_email')->get();
dd(DB::getQueryLog());
Aqui, usei duas declarações DB::enableQueryLog()
e dd(DB::getQueryLog())
. A primeira instrução ativa o log de consulta, enquanto a segunda instrução realmente imprime esse log no navegador. Esta técnica de depuração também funciona com o Laravel Eloquent.
Pode-se usar este método se não quiser registrar consultas. Mas, como disse antes, essa não é realmente uma maneira conveniente. Porque, se você seguir esta técnica, você precisará repetir essas duas instruções DB::enableQueryLog()
e dd(DB::getQueryLog())
para cada consulta.
A melhor opção é registrar todas as consultas no arquivo de log.
Consulta de Log no Laravel
Eu recomendo uma técnica de registro de consultas no Laravel. É uma maneira mais fácil e conveniente para os desenvolvedores. Você não precisa ir ao local de cada consulta e escrever o código para o registro.
Em vez disso, você só precisa editar AppServiceProvider.php
e pronto.
Abra o app/Providers/AppServiceProvider.php
arquivo e adicione 2 Facades para ‘File’ e ‘DB’ como segue.
use IlluminateSupportFacadesFile;
use IlluminateSupportFacadesDB;
A seguir, no boot()
método, escreva um código abaixo que irá registrar todas as suas consultas do Laravel em 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
);
});
}
}
Agora, sempre que uma consulta for executada, ela será registrada automaticamente no storage/logs/query.log
arquivo. O usuário pode visualizar diretamente suas consultas neste query.log
arquivo.
No Laravel, mais uma forma está disponível para registrar as consultas. Usando desta forma, seus logs de consulta são armazenados dentro do storage/logs/laravel.log
arquivo. Para fazer isso, você precisa colocar o código abaixo em seu routes/web.php
arquivo.
DB::listen(function($sql) {
Log::info($sql->sql);
Log::info($sql->bindings);
Log::info($sql->time);
});
É isso! Agora, depende de você usar qualquer um dos métodos acima para registrar as consultas. Você não precisa usar os dois métodos ao mesmo tempo.
É tudo sobre como registrar as consultas no Laravel. Espero que este artigo seja útil para sua aplicação. Por favor, compartilhe seus pensamentos e sugestões na seção de comentários abaixo.
Artigos relacionados
- Como criar uma página de erro 404 personalizada no Laravel
- Como integrar o boletim informativo MailChimp no aplicativo Laravel