✅ Notícias, temas e plug-ins da WEB e do WordPress. Aqui compartilhamos dicas e as melhores soluções para sites.

Como registrar uma consulta no Laravel

25

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.phpe pronto.

Abra o app/Providers/AppServiceProvider.phparquivo 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.logarquivo. O usuário pode visualizar diretamente suas consultas neste query.logarquivo.

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.logarquivo. Para fazer isso, você precisa colocar o código abaixo em seu routes/web.phparquivo.

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

Fonte de gravação: artisansweb.net

Este site usa cookies para melhorar sua experiência. Presumiremos que você está ok com isso, mas você pode cancelar, se desejar. Aceitar Consulte Mais informação