我正试图将Facebook集成到我的一个cakeHP2应用程序中,我在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
}
}