我正在嘗試對員工進行修改,但我的密碼字段出現問題。symfony2表單更改密碼
當我在表單上時,如果沒有在用空白密碼修改的密碼中插入任何內容。這是不正確的,我希望如果用戶不做任何事情,密碼不會將密碼留空。
我正在嘗試對員工進行修改,但我的密碼字段出現問題。symfony2表單更改密碼
當我在表單上時,如果沒有在用空白密碼修改的密碼中插入任何內容。這是不正確的,我希望如果用戶不做任何事情,密碼不會將密碼留空。
這裏的問題是,你使用一個字段來保存兩個不同的東西:一個簡單的密碼和它的散列。所以,相反,他們分成$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);
}
只是不更新,如果它沒有提交(修改)密碼字段。 我認爲這就是你需要的一切
/**
* @ORM\Entity
**/
class User
{
// your setters/getters
public function setPassword($password)
{
if (null === $password) {
return;
}
$this->password = $password;
}
}