使用$ this-> Auth-> user()缺少完整数据

时间:2013-11-28 15:06:06

标签: cakephp-2.3

出于某种原因,当我在成功登录后得到$ this-> Auth-> user()的结果时,得到的结果是:

array('password'=>'****', 'username'=>'theUsername')

这确实显示了当前登录用户的正确信息,但如果我要求简单的内容,例如$ this-> Auth-> user(' id'),我会得到null。

过去,我已经能够获取当前登录用户的所有字段。我在配置中确实没有什么特别之处,我可以通过Users-> index()方法调用它,因此我可以完全访问Users模型。如果我尝试$ this-> User-> find(' first'),我会得到所有字段(当然是第一个用户)。

我正在运行PHP 5.5和CakePHP 2.3。

更新:这是我的登录方法(我输入调试信息来检查结果)。我得到与上面相同的结果。我是否需要做一些特别的事情来确保$ this-> Auth-> user()包含users表中的所有字段?

public function login() {
    if ($this->request->is('post')) {
        if ($this->Auth->login($this->request->data)) {
            debug($this->Auth->user());
        }
    }
 }

1 个答案:

答案 0 :(得分:0)

您不必为Authentication.also指定表单数据。尝试将所有auth用户数据设置为另一个变量。试试这个

public function login() {
if ($this->request->is('post')) {
    if ($this->Auth->login() {
        debug($this->Auth->user());
    }
}

}

并尝试分配到变量

 $this->set('current_user',$this->Auth->user);

如果要在所有控制器中使用它,请在AppController中指定它