Queries do Laravel no Tinker

O Tinker é uma mão na roda. É muito bom ter PHP em linha de comando com acesso completo a todas as funcionalidades de nossa aplicação Laravel, inclusive os models. No diretório do projeto, basta digitar:

php artisan tinker

Pode ser muito útil saber quais são as queries executadas nas buscas por models, principalmente quando envolver relacionamentos complicados ou tabelas pivot.  A documentação do Laravel nos ensina a incluir listeners para ter acesso não só às consultas estão sendo realizadas mas os seus parâmetros e o tempo de execução.

A boa notícia é que listeners podem ser configurados no Tinker e vão durar por toda a sessão. É fácil demais:

>>> DB::listen(function ($query) { dump($query->sql); dump($query->bindings); dump($query->time); });

 

É isso. Agora, sempre que você acessar algum model, vários detalhes vão aparecer:

>>> App\User::find(1)->get(['id','name','status','created_at'])
"select * from `users` where `users`.`id` = ? and `users`.`deleted_at` is null limit 1"
array:1 [
  0 => 1
]
1.41
"select `id`, `name`, `status`, `created_at` from `users` where `users`.`deleted_at` is null"
[]
0.76
=> Illuminate\Database\Eloquent\Collection {#869
     all: [
       App\User {#879
         id: 1,
         name: "John Dow",
         status: 0,
         created_at: "2018-01-01 17:54:09",
       },
     ],
   }
>>>

 

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *