2

従業員の変更された形式を作成しようとしていますが、パスワードフィールドに問題があります。

フォームを表示しているときに、空白のパスワードで変更されたパスワードに何も挿入しない場合。これは正しくありません。ユーザーがパスワードを何もしなくても、パスワードが空白にならないようにしたいと思います。

4

2 に答える 2

3

ここでの問題は、1つのフィールドを使用して、プレーンパスワードとそのハッシュという2つの異なるものを保持していることです。$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);
}
于 2012-10-29T14:26:36.223 に答える
3

送信(変更)されていない場合は、パスワードフィールドを更新しないでください。必要なのはそれだけだと思います

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

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

       $this->password = $password;
   }
}
于 2012-10-29T18:12:05.907 に答える