【发布时间】:2011-07-14 21:39:32
【问题描述】:
嘿, 我现在遇到了一个神秘的问题...... 我的网站上有登录服务。 我使用 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');
}
这是我登录的一部分
/**
* @ManyToOne(targetEntity="Country")
* @JoinColumn(name="country_id", referencedColumnName="id")
*/
private $country;
用户具有不同的属性,如国家、地址等。
所以我的问题是: 如果用户的字段 Country 为空(在数据库中),则登录工作正常......但如果用户被分配到一个国家(国家只有 id 和 name),我的系统将失败。 重定向后 $_SESSION 中没有 $user 没有php错误或类似的东西..变量就消失了
将 id 存储在会话中并在每次页面加载时加载用户会更好吗?
【问题讨论】:
标签: php apache session doctrine