Duplicate entry 'test@test.com' for key 'users_email_unique'

130
17 мая 2019, 06:30

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;
/**
 * Where to redirect users after registration.
 *
 * @var string
 */
protected $redirectTo = '/';
/**
 * Create a new controller instance.
 *
 * @return void
 */
public function __construct()
{
    $this->middleware('guest');
}
/**
 * Get a validator for an incoming registration request.
 *
 * @param  array  $data
 * @return \Illuminate\Contracts\Validation\Validator
 */
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());
}
/**
 * Create a new user instance after a valid registration.
 *
 * @param  array  $data
 * @return User
 */
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";
}
READ ALSO
Не могу подключиться к базе данных в IntelliJ IDEA

Не могу подключиться к базе данных в IntelliJ IDEA

Подчёркивает строчку ClassforName("com

164
MySQL: Как получить последние записи одним запросом?

MySQL: Как получить последние записи одним запросом?

В таблице в хронологическом порядке фиксируются состояния пользователей (и их изменения), например,

151
Вход в MySQL в консоли Ububtu под root

Вход в MySQL в консоли Ububtu под root

У меня несколько одинаковых по настройкам VDS Ubuntu 1604

133