2014年4月23日水曜日

[CakePHP]AppControllerのbeforeFilterが2回以上呼び出されている時。

「Missing View」のエラーがでる時なんかは、継承しているAppControllerのbeforeFilterが2回以上呼ばれていることがわかった。

また、それぞれのControllerでbeforeFilterを完全に上書きoverrideしている時でも(つまり、parent::beforeFilter();を書かないケース)、Missing View等のエラー画面を出すのにAppControllerのbeforeFilterが呼ばれてしまう。(せっかく完全上書きしてAppControllerのbeforeFilterを使わないようにしているのに)

具体的に言うと、AppControllerでは各Controllerで共通で使う、cookieを使った自動ログイン処理を入れたりするが、UserControllerだけはlogout処理等があるため自動ログインしたくない場合などに困る。(logout処理した直後に自動ログイン処理が走ってしまう。cookieはresponseが完了するまで反映されないため)

0 件のコメント:

コメントを投稿