出于某种原因,当我在成功登录后得到$ 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());
}
}
}
答案 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中指定它