バグ解消法、お役立ち情報など

CakePHPのfind()で実行されたSQLを表示する方法

logo

はじめに

CakePHPのORMでは、findメソッドを使うことでSQLを書くことなくデータベースからデータを取得できます。

SQLを書く必要がないとはいえ、開発中はfindメソッドによりシステム内部で実行されるSQLを確認したいことも多いと思います。

CakePHPでは、findメソッドで実行されたSQLを出力するメソッドが用意されています。

SQLの表示方法

sqlメソッド を使うことでSQLを表示することができます。

サンプルコードは以下の通りです。

サンプルコード
$query = $this->モデル名->find()->where(['id' => 1])->first(); dd($query->sql()); // sqlメソッド

ddメソッドは、その場で処理をストップして引数の値を画面に表示するメソッドです。

実行結果は以下のようなイメージとなります。

サンプルコードの実行結果イメージ
SELECT * FROM `モデル名` WHERE id = 1 LIMIT 1;

sqlメソッドの詳細は公式ドキュメントをご参照ください。

クエリーのデバッグと結果セット

バグ解消法、お役立ち情報など