Я пытаюсь зарегистрировать нового пользователя через Sentry, и Sentry::register
бросает UserExistsException
,
Но я уверен, что он не существует в моей БД (адрес электронной почты на основе, и я создал случайный адрес).
Вот выдержка из моего кода:
try {
try {
Sentry::setUserProvider(new UserProvider\Provider(new Hashing\NativeHasher, 'Alsace\User'));
$user = Sentry::register(['email' => $post['adresse_email'], 'password' => $mdp]);
$code_activation = $user->getActivationCode();
} catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
throw new DomainException("Le champ email n'est pas renseigné.");
} catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
throw new DomainException("Le champ mot de passe n'est pas renseigné.");
} catch (Cartalyst\Sentry\Users\UserExistsException $e) {
throw new DomainException("Un utilisateur ayant cet e-mail existe déjà.");
}
$user->first_name = $post['prenom'];
$user->last_name = $post['nom'];
$user->telephone = !empty($post['portable']) ? $post['portable'] : null;
$user->save();
Alsace\Bureau::whereIn('id', $ids_bureaux)->get()->each(function($bureau) {
global $user;
$bureau->user_id = $user->id;
$bureau->save();
});
// ...
header('201 Created', true, 201);
header('Content-Type: application/json');
echo json_encode(['success' => 'Création OK']);
exit();
} catch (DomainException $e) {
// header('200 OK', true, 200);
header('Content-Type: application/json');
echo json_encode(['exception' => $e->getMessage()]);
exit();
}
Мой HTTP-ответ — это JSON с кодом состояния 201, но содержимое JSON соответствует одному языку в моем DomainException
ловить?
PS: я думал, что это может быть потому, что jQuery отправляет мою форму дважды, но это не так.
Задача ещё не решена.
Других решений пока нет …