CakePHP:在非对象上调用成员函数 setFlash()

2022-08-30 15:09:41

我在尝试注销我的 CakePHP 应用程序时收到以下错误:

Notice (8): Undefined property: UsersController::$Session [APP/controllers/users_controller.php, line 75]
Fatal error: Call to a member function setFlash() on a non-object in /Users/cameron/Sites/cakeapp/app/controllers/users_controller.php on line 75

这是第 74、75 和 76 行的代码:

function logout() {
    $this->Session->setFlash('Good-Bye');
    $this->redirect($this->Auth->logout());
}

答案 1

看起来您没有在用户控制器中加载会话组件。

默认情况下应加载会话组件,但如果已在 AppController 中设置了组件数组,这将覆盖默认值。

这意味着,如果您有

var $components = array();

在 AppController 中,确保会话组件包含在其中:

var $components = array('Session');

或者,如果你不想在应用范围内使用会话组件,则可以在“用户”控制器中加载该组件。


答案 2

推荐