No.112
【CakePHP】Exception発生時の状況確認
Exception発生時に何が起きたのかわからない
CakePHPに限ったことではないが、フレームワークはPHPの素の挙動をフックしていろいろ処理しているので、実際に何が起きているのかが非常に分かりづらい。
よく使っているCakePHPは何でもExceptionにしたがるので、Exceptionがあるたびに
echo $e->getMessage();
で原因を出力してやり、そのメッセージから読み解いていくしかない。
しかも、このメッセージが実に不親切で、せっかくフレームワークを使っているというのにエラーメッセージしか出力せず、関連情報は表示してくれないのだ。
そこから原因を探る方法はケースバイケースなのだけど、一番自分が引っかかるデータベースへのSQLに関しては以下で確認ができる。(PDOException発生)
echo $e->queryString;
PDOExceptionが発生しているということはクエリが実行されていないので、以前紹介した方法ではクエリの確認ができないことに注意。