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