teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2016/10/13 05:05

投稿

popobot
popobot

スコア6588

answer CHANGED
@@ -1,7 +1,10 @@
1
1
  参考程度の情報ですが、別解として... ExceptionRendererを使ってうまく実装できるかもしれません。
2
2
 
3
- ExceptionRendererは処理(catch)されなかったExceptionをHTMLのエラー画面描画していますが、
3
+ ExceptionRendererは処理(catch)されなかったExceptionをエラー画面等で描画していますが、ここをうまく制御すればjsonを返すことができると思います。
4
- isAjaxだったらjsonを返すようにカスタマイズできるのではないかと以前考えたことがありました。
5
4
  http://book.cakephp.org/3.0/ja/development/errors.html#exceptionrenderer
6
5
 
6
+ ----
7
+
8
+ **追記**
9
+
7
- ※実際にしていないです。すみません...うまく出来た方がいたら情報お願いします。
10
+ Cakephp3内部でExcptionが発生た場合、リクエスト時のレスポンスのタイプ(jQueryのajaxのdataType等)に従っ、レスポンスを返すようです。なので、レスポンスタイプに明示的にjsonを指定しておけば、exceptionの情報もjsonで受け取ることができます。