2010-05-14 248 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