Ошибка повторяющегося адреса электронной почты при регистрации нового пользователя Dingo/Jwt Laravel
У меня проблема с регистрацией новых пользователей. Я получаю доступ к BackEnd из приложения Android (API).
Я использую этот Laravel API Boilerplate
Вот мое правило проверки;
'signup_fields_rules' => [
'sname' => 'required',
'fname' => 'required',
'gender' => 'required',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:8',
],
и мой новый код регистрации пользователя
public function signup(Request $request)
{
$signupFields = Config::get('boilerplate.signup_fields');
$hasToReleaseToken = Config::get('boilerplate.signup_token_release');
$userData = $request->only($signupFields);
$validator = Validator::make($userData, Config::get('boilerplate.signup_fields_rules'));
if($validator->fails()) {
Log::info($validator->errors()->all());
throw new StoreResourceFailedException('Could not create account.',$validator->errors()->all());
}
User::unguard();
$dept = DB::table('depts')->select('dept_id')
->where('dept_name', $request->input('dept'))->first();
$userData['user_id'] = str_random(60);
$userData['dept_id'] = $dept->dept_id;
$user = User::create($userData);
User::reguard();
if(!$user->id) {
return $this->response->error('could_not_create_user', 500);
}
if($hasToReleaseToken) {
return $this->login($request);
}
return $this->response->created();
}
Эта проблема:
Когда новый пользователь пытается зарегистрироваться, он показывает Email taken already
, Я обнаружил, что новые данные пользователя будут сохранены в базе данных, прежде чем отобразить ошибку. Это то, что функция регистрации вызывается дважды.
Мне нужна помощь с этим, пожалуйста.