Cakephp の子コントローラーでコンストラクターを継承/オーバーライドできるかどうか疑問に思っています。
私のAppController.phpで
私はそれを次のように持っています:
public function __construct( $request = null, $response = null ) {
parent::__construct( $request, $response );
$this->email = new CakeEmail();
$this->_constants = array();
$this->_constants['some_var'] = $this->Model->find( 'list', array(
'fields' => array( 'Model.name', 'Model.id' )
) );
}
そして私の子コントローラーSomeController.phpでは、親コンストラクターを継承します
public function __construct( $request = null, $response = null ) {
parent::__construct( $request, $response );
}
$this->emailと$this->_constants['some_var']にアクセスしようとすると、どちらも null です。しかし、コードを継承する代わりに SomeController.php に直接入れるとすぐに、それは機能しました。
私は何か間違ったことをしましたか、それともケーキには近づきませんか? また、関数beforeFilter()で同じことを試しましたが、同じことが起こりました。しかし、各コントローラーが独自のbeforeFilter()を持つことは理にかなっています。