Php 在调用beforeRender之前,是否会销毁在beforeFilter中初始化为AppController属性的对象?

Php 在调用beforeRender之前,是否会销毁在beforeFilter中初始化为AppController属性的对象?,php,cakephp,cakephp-2.0,Php,Cakephp,Cakephp 2.0,我正在尝试将Facebook集成到我的一个cakePHP2应用程序中,并在beforeFilter中初始化Facebook类,如下所示: public function beforeFilter(){ $this->Facebook = new Facebook(array( 'appId' => 'myappid98a232466', 'secret' => 'myappsecret8e06342c5', )); } 稍后

我正在尝试将Facebook集成到我的一个cakePHP2应用程序中,并在
beforeFilter
中初始化Facebook类,如下所示:

public function beforeFilter(){
    $this->Facebook = new Facebook(array(
        'appId'  => 'myappid98a232466',
        'secret' => 'myappsecret8e06342c5',
    ));

}
稍后在
beforeRender
中,当我尝试访问Facebook的方法时,我遇到了一个错误:对非对象调用成员函数getLoginUrl()

public function beforeRender(){
    $this->set('fbLoginUrl', $this->Facebook->getLoginUrl());
}
beforeRender()
上的
$this->Facebook
的值设置为
null
。为什么物体会被摧毁

未运行beforeFilter 很可能在未调用父类的子类中定义了beforeFilter。因此,AppController中的beforeFilter不会运行,并且从不设置属性。修订人:

class FoosController extends AppController {

    public function beforeFilter() {
        ...
        parent::beforeFilter(); // added
    }

}