QueryBuilder(or Eloquent ORM)で組み立てたSQLを確認したい時に使う
いずれも tinker で実施
①QueryBulderから確認する場合
>>> App\Models\User::where('id', 1)->toSql() => "select * from `users` where `id` = ?"
②複数のQueryBuilderから確認したい場合
>>> DB::enableQueryLog() # ログの出力をONにする => null >>> App\Models\User::find(1) # SQLを確認したい処理分だけ実行する => App\Models\User {#370 id: 1, name: "example", email: "example@example.com", } >>> DB::getQueryLog() # 実施した分のSQLが出力される => [ [ "query" => "select * from `users` where `users`.`id` = ? limit 1", "bindings" => [ 1, ], "time" => 2.76, ], ] >>> DB::flushQueryLog() # ログの中身を空にする
適当なタイミングで DB::flushQueryLog()
をすればログの中身が空になる
毎回空にするのであれば dump(DB::getQueryLog()) && DB::flushQueryLog()
を実行すれば出力と同時にログの中身も空にしてくれる