从auth组件中检索用户信息

时间:2011-03-13 20:40:05

标签: cakephp

我在检查用户是否从UsersController以外的任何控制器登录时遇到问题。

我正在尝试制作用户个人资料页面。当我使用

时,我将它路由到PagesController
$this->Auth->user()

它总是返回null。但是,如果我将它路由到UsersController它工作正常。这是为什么?登录似乎工作正常。

2 个答案:

答案 0 :(得分:1)

你的app_controller.php:

class AppController extends Controller {

    var $components = array('Auth', 'Session', 'Cookie');

    function beforeFilter() {
        $this->Auth->authError = 'blabla';
        $this->Auth->loginError = 'blabla';
    }

}

在您的控制器中:

function beforeFilter() {
    parent::beforeFilter();
    $this->Auth->allow('function1', 'function2', 'function3'); //etc
    $this->Auth->autoRedirect = true;
}

答案 1 :(得分:0)

这是因为您只在用户的控制器中包含Auth组件。您应该将它包含在AppController和beforeFilter()中。这样您就可以访问所有控制器。