2010-05-14 183 views
3

我正在开发一个使用Symfony的新应用程序。我想存储密码散列,所以我覆盖了我的用户模型中的保存方法:密码哈希执行

public function save(Doctrine_Connection $conn = null) 
{ 
    $this->setUserPassword(md5($this->getUserPassword())); 
return parent::save($conn); 
} 

这适用于创建新用户时。但是,当我们编辑用户而不更改密码时,这会导致问题。这会导致Doctrine散列已经散列的密码。

所以,我需要检查是否在此DoctrineRecord实例中修改UserPassword。我怎样才能做到这一点?

回答

8

解决方案: 我们仅需覆盖setter方法:

public function setUserPassword($password) 
{ 
    return $this->_set('user_password', md5($password)); 
} 
+0

妈的,第3的问题,我看其中OP人面前回答自己。我想这会很快死去,人们变得太聪明了! – 2010-05-15 21:06:21