Registrando consultas no Laravel

Às vezes, ao depurar uma consulta, você deseja ver qual seria a saída de SQL bruta para ter uma ideia do que pode estar errado.

No Laravel, isso é muito simples de fazer.

MyModel::where('id', 1)->first();
$queries
= DB::getQueryLog();

Isso fornece uma lista de todas as consultas que foram executadas até aquele ponto: a própria consulta, as ligações e o tempo que levou para ser executado. No caso do nosso exemplo, terminaríamos com uma consulta para o primeiro modelo e o array retornado seria parecido com o seguinte.

[
'query' => '...',
'bindings' => [...],
'time' => 0.0
]

Laravel 5

Esta abordagem funciona tanto no Laravel 4 quanto no Laravel 5. No entanto, no Laravel 5, há mais um passo que você precisa realizar: o log de consultas está desabilitado por padrão, então vamos habilitá-lo.

DB::connection()->enableQueryLog();

E pronto – agora você pode depurar a saída da consulta com facilidade!