laravelでのSQL実行内容の出力について

Date:

Share post:

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)の場合は囲んだ中で発行したクエリ数のデバッグ出力が行われます。

Related articles

ラベル画像のエンベディング

前回の投稿(ラベル画像の切り出し)で...

ラベル画像の切り出し

前回の投稿(Mac+PostgreS...

フロント担当のTIL 2025/06

「Today I Learned(今日学んだこと)」を記録するTIL、6月は新マシンが納品され、GPU仮想化からローカルLLM環境の構築まで、いろいろ試行錯誤しました。

Mac+PostgreSQLでベクトル検索

前回の投稿で予告したように、今回から...