À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!