2012-10-29 57 views
2

我正在嘗試對員工進行修改,但我的密碼字段出現問題。symfony2表單更改密碼

當我在表單上時,如果沒有在用空白密碼修改的密碼中插入任何內容。這是不正確的,我希望如果用戶不做任何事情,密碼不會將密碼留空。

回答

3

這裏的問題是,你使用一個字段來保存兩個不同的東西:一個簡單的密碼和它的散列。所以,相反,他們分成$plainPassword$password和更新$password場只有當$plainPassword不爲空:

if ($plainPassword = $user->getPlainPassword()) { 
    $encoder = $this->get('security.encoder_factory')->getEncoder($user); 
    $password = $encoder->encodePassword($plainPassword, $user->getSalt()); 
    $user->setPassword($password); 
} 
3

只是不更新​​,如果它沒有提交(修改)密碼字段。 我認爲這就是你需要的一切

/** 
* @ORM\Entity 
**/ 
class User 
{ 
    // your setters/getters 

    public function setPassword($password) 
    { 
     if (null === $password) { 
      return; 
     } 

     $this->password = $password; 
    } 
}