0

我正在尝试将 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->Facebookon的值beforeRender()设置为null。为什么对象会被破坏?

4

1 回答 1

1

beforeFilter 未运行

很可能在未调用父类的子类中定义了 beforeFilter。因此,AppController 中的 beforeFilter 不会运行,并且永远不会设置该属性。通过以下方式修复:

class FoosController extends AppController {

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

}
于 2013-08-01T23:19:40.253 回答