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

时间:2011-02-02 16:07:27

标签: php cakephp

尝试注销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 个答案:

答案 0 :(得分:66)

您的用户控制器中似乎没有加载会话组件。

默认情况下应加载Session组件,但如果您在AppController中设置了components数组,则会覆盖默认值。

这意味着如果你有

var $components = array();
在AppController中

,确保会话组件包含在那里:

var $components = array('Session');

或者,如果您不想在应用程序范围内使用会话组件,则可以在其中加载会话组件。