sou*_*ver 3 php apache session doctrine
嘿,我现在有一个神秘的问题...我在我的网站上有一个登录服务.我使用Doctrine作为ORM.当用户为用户名和密码输入正确的组合时,我尝试将检索到的用户对象存储在我的会话中以供以后使用.
$user = new models\User;
$user = $em->getRepository('models\User')->findOneBy(array(
'username' => $this->input->post('username'),
'password' => hash("sha512", $this->input->post('password'))
));
if($user != NULL) {
session_start();
$_SESSION['user'] = $user;
redirect('user');
}
Run Code Online (Sandbox Code Playgroud)
这是我登录的一部分
/**
* @ManyToOne(targetEntity="Country")
* @JoinColumn(name="country_id", referencedColumnName="id")
*/
private $country;
Run Code Online (Sandbox Code Playgroud)
用户有不同的属性,如国家,地址等.
所以我的问题是:如果用户的字段Country为null(在数据库中),登录工作正常......但如果用户被分配到一个国家(国家只有id和名称),我的系统将失败.在重定向之后,$ _SESSION中没有$ user没有php错误或类似的东西......变量就消失了
它可能更好只是在会话中存储id并在每个页面加载时加载用户?
它可能更好只是在会话中存储id并在每个页面加载时加载用户?
当然.用户数据可能已经在下一页加载时已经改变,因此您显然需要刷新数据库中的数据,而不是从会话中读取用户的旧数据.
引用: