ログインに失敗したときにsymfony2に特定のエラーメッセージを書き込むにはどうすればよいですか?状況によって異なります
例: ユーザー名が見つからない場合: ユーザー名 'userxxx' は存在しません。 ユーザー名は見つかったがパスワードが間違っている場合: 入力したパスワードが間違ってい ます。もう一度お試しください。または: 「userxxx」のパスワードが間違っています。もう一度お試しください。
ユーザー名が見つからない場合にエラー メッセージを警告する方法を見つけたのは、カスタム ユーザー プロバイダーを作成することです
class UserProvider implements UserProviderInterface {
protected $entityManager;
public function __construct(EntityManager $entityManager) {
$this->entityManager = $entityManager;
}
public function loadUserByUsername($username) {
$user = $this->entityManager
->getRepository('ShopSecurityBundle:User')
->findOneBy(array('username' => $username));
if ($user) {
$service_user = new SecurityServiceUser($user->getUsername(), $user->getPassword(), $user->getSalt(), array($user->getRole()));
//var_dump($service_user); die;
return $service_user;
}
// I throw a BadCredentialsException() here then the error message in security Context will be changed arcodding to the exception message!
throw new BadCredentialsException(sprintf('Username "%s" does not exist', $username));
}
// ...
}
しかし、ユーザー名が正しいのにパスワードが間違っている場合のエラーメッセージを変更する方法がわかりません!
なにか提案を?