laravelでEloquentを使用したデータ取得のSQL内容を確認する際に、自分がいつも忘れてしまうので備忘のために書いております。
実際に発行されるSQLがどうなっているかを確認する方法として
1)toSql()
メソッドを呼び出して、SQL文を取得する
$query = Model名::where( ・・・ )->where( ・・・ )->where( ・・・ );
$query->orWhere(function($query) use( 変数A, 変数B, 変数C ){
・
・
・
});
dd( $query->toSql(), $query->getBindings() );
2)SQL実行前に DB::enableQueryLog()
でクエリログを有効化して、SQL実行後に DB::getQueryLog()
メソッドを利用する。
\DB::enableQueryLog();
変数A = Model名::where( ・・・ )->get();
・
・
・
変数B = Model名::where( ・・・ )->get();
・
・
・
変数C = Model名::where( ・・・ )->get();
・
・
・
dd( \DB:: getQueryLog() );
1)の場合は単一のSQLをデバッグ出力、2)の場合は囲んだ中で発行したクエリ数のデバッグ出力が行われます。