我尝试通过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响应是一个状态代码为201的JSON,但JSON的内容对应于我DomainException
捕获中的一个内容?