我正在尝试对员工进行修改,但我的密码字段出现问题。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;
}
}