このコードを 2 つのメソッド (作成と更新) で使用しています。新しいユーザーを更新または作成する必要があるたびに、ユーザーのパスワードをソルトでエンコードする必要があります。
$factory = $this->get('security.encoder_factory');
$encoder = $factory->getEncoder($entity);
$password = $encoder->encodePassword($entity->getPassword(), $entity->getSalt());
$entity->setPassword($password);
コードの重複を避けるにはどうすればよいですか?
- コントローラーに新しいメソッドを作成する
getEncondedPassword($entity) : return $encodedPassword
- DI を使用してフォームにこのロジックを追加し、
$encoder
必要に応じてフィールドを挿入します。 - このロジックをモデルに追加し
$encoder
、エンティティ オブジェクトのコンストラクターで を渡します。
ありがとうございました!