我在CakePHP中构建了一个正在进行文件上传的应用程序。对于每个文件上传,我知道用户的ID,所以我从$ this-> Auth-> user()
获取它现在,我发现当我在页面上时,我会在登录时上传文件,但有时当我打印$ this-> Auth-> user()时它返回任何内容,然后下次我尝试上传文件时,它会返回,所有这些都没有登录或退出。它看起来非常不一致,因为它有时会在那里,但有时却看不到它。
我错过了什么?谢谢!
答案 0 :(得分:0)
为什么不将app_controller中的var设置为$this->Auth->userModel
,以便应用程序的其余部分可以访问它。
在我的app_controller中,我在before_filter
中调用以下内容来设置$current_user
。
/**
* Sets a value for current user $current_user.
* @return boolean
*/
function __setCurrentUser() {
$user = null;
if ($user = $this->Auth->user()) {
$this->set('current_user', $user[$this->Auth->userModel]);
return true;
} else {
return false;
}
}
在我的应用中,我可以通过$current_user
访问$current_user['id']
的ID。
答案 1 :(得分:0)
您也可以始终从AuthComponent创建的Session中获取userinfo。如果$ this-> Auth-> user('id')为空...我想知道是否确实存在有效会话!您确定在此期间没有注销,并且该页面由于某种原因不需要登录吗?