symfony2表单更改密码

时间:2012-10-29 13:42:09

标签: symfony

我正在尝试修改员工的形式,但我的密码字段有问题。

当我在表单上时,如果没有在用空白密码修改的密码中插入任何内容。这是不正确的,我希望如果用户不对密码执行任何操作,则不会将密码设置为空白。

2 个答案:

答案 0 :(得分: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);
}

答案 1 :(得分:3)

如果未提交(修改)密码字段,请不要更新密码字段。 我认为这就是你所需要的一切

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

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

       $this->password = $password;
   }
}