我正在尝试将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());
}
$this->Facebook
上beforeRender()
的值设置为null
。为什么对象会被破坏?
答案 0 :(得分:1)
很可能在子类中定义了一个未调用父类的beforeFilter。因此,AppController中的beforeFilter不会运行,并且永远不会设置该属性。修复:
class FoosController extends AppController {
public function beforeFilter() {
...
parent::beforeFilter(); // added
}
}