Laravel 5.5 + AjaxRegister При регистрации пользователей иногда натыкаюсь на такую ошибку в логах:
at /var/www/game2/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, PDOException(code: 23000): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test@test.com' for key 'users_email_unique' at /var/www/game/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458)
По словам пользователей при регистрации их кидает на белый экран и все. При обновлении страницы они зарегистрированы, но данная ситуация отпугивает много народу. Повторюсь, проблема возникает через раз.
Код RegisterController:
use RegistersUsers;
protected $redirectTo = '/';
public function __construct()
{
$this->middleware('guest');
}
protected function validator(array $data)
{
$data['email'] = $data['email_reg'];
$data['password'] = $data['password_reg'];
$vaild = Validator::make($data, [
'name' => 'required|max:255|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6|confirmed',
]);
if ($vaild->fails()) {
return json_encode($vaild->errors());
}
return true;
}
public function register(Request $request)
{
$v = $this->validator($request->all());
if (! is_bool($v)) {
return $v;
}
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
protected function create(array $data)
{
$data['email'] = $data['email_reg'];
$data['password'] = $data['password_reg'];
$avatar = Avatars::inRandomOrder()->first();
$referred_by = Cookie::get('referral');
$come_url = NULL;
if(null !== Cookie::get('come_url')){
$come_url = Cookie::get('come_url');
}
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => bcrypt($data['password']),
'come_url' => $come_url,
'last_login' => Carbon::now(),
'avatar' => $avatar->img,
'uniq' => md5($data['email'].$data['name'])
]);
}
protected function registered(Request $request, $user)
{
return "true";
}