Laravelで実行されたSQLを確認する

App::afterを利用する方法とlaravel-debugbarを使う方法

DB::getQueryLogをクエリ発効後に参照する

Laravelで実行したSQLを確認する方法です。

DB::getQueryLog()の結果をSQLを実行するコードの後に追加することで、SQL文を確認することが出来ます。

$p = Product::with('users', 'tags', 'comments')->orderBy('id','desc')->get();

$q = DB::getQueryLog();
echo "<pre>";
var_dump($q);
echo "</pre>";

SQL確認用のコードをApp::after()に設定して、Laravelのdebug値に応じてON/OFFしてみます。

app/filters.php

App::after()

にSQL確認用のコードを追加します。その際、Laravelのdebug値がtrueの場合にSQLを確認できるようにします。

App::after(function($request, $response)
{
  if( Config::get('app.debug') )
  {
    $q = DB::getQueryLog();

    echo "<pre>";
    var_dump($q);
    echo "</pre>";
  }
});

laravel-debugbarでQueriesを確認

Laravel4のDebugbarを使って実行されたSQL文を確認することも可能です。laravel-debugbarはcomposerでインストールすることが出来ます。

Laravelのルートに配置されている

composer.json

のrequireにlaravel-debugbarを追加します。

"require": {
  "laravel/framework": "4.2.*",
  "barryvdh/laravel-debugbar": "1.8.*"
},

追加したらupdateを実行すればインストール完了です。

composer update

updateしたら、

app/config/app.php

providers配列

‘Barryvdh\Debugbar\ServiceProvider’,

を追加します。その下の

aliases配列に

‘Debugbar’ => ‘Barryvdh\Debugbar\Facade’,

を追加すれば、デバッグバーが表示されます。

laravel-queries

laravel-debugbarを利用すれば無理なくSQL文を確認することが出来ます。デバッグバーの表示はLaravelのdebug値で制御することが可能です。

Webエンジニアブログにコメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Laravelで実行されたSQLを確認するの記事にコメントを投稿