UniqueValidator
クラスのvalidateUniqueメソッドを呼び出します。UserManager
クラスを拡張し、関数を変更してユーザーをチェックすることができます
$this->findUserByEmail($user->getEmail());
編集
2番目の質問では、クラスUpdateUser
のメソッドをオーバーライドする必要があります。UserManager
/**
* Updates a user.
*
* @param UserInterface $user
* @param Boolean $andFlush Whether to flush the changes (default true)
*/
public function updateUser(UserInterface $user, $andFlush = true)
{
$existsUser = $this->findUserByEmail($user->getEmail());
$this->updateCanonicalFields($user);
$this->updatePassword($user);
if($existsUser && null === $user->getId()){
$user->setId($existsUser->getId());
$this->em->merge($user);
} else{
$this->em->persist($user);
}
if ($andFlush) {
$this->em->flush();
}
}