2012年9月21日金曜日

[CakePHP]AppControllerと普通のControllerのcomponentの設定の関係

AppControllerで設定したcomponentを普通のControllerで重ねて設定すると
うまくマージしてくれないみたい。

以下のようにapp_controller.phpで設定するとする。
var $components = array('Auth','Session');
そして普通のControllerであるusers_controller.phpに以下のように設定するとする。
※まぁ、AppControllerで設定しているものを重ねて設定することはないのだけど、
 消し忘れた場合など。
var $components = array('Auth');
すると、以下のようなエラーが発生
Notice (8): Trying to get property of non-object [APP\controllers\users_controller.php, line 51]

 たぶん、コンポーネントの設定のマージがうまくいっていないんだろうな。
以下で指摘した点と同じ原因かもしれない。

[CakePHP]AppController でコンポーネント設定するとsessionコンポーネントが使えない。

なので、users_controller.phpの方のcomponentsの設定を消したらう動いた。

※CakePHPのバージョンはcakephp-cakephp-1.3.15-9-gacd25c3.zip


※追記:
この後、もう一度、users_controllerの方のcomponentの設定を戻してやっても
動いた。原因は違うところにありそうです。すみません。

0 件のコメント:

コメントを投稿