dqyy38265 2016-08-21 19:31
浏览 310

完整性约束违规:1062重复条目

I am receiving 2 errore while submitting a signup form using an email that already been inserted be

Integrity constraint violation: 1062 Duplicate entry 'test@test.com' for key 'users_email_unique'

.

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 'test@test.com' for key 'users_email_unique'

I have database index users_email_unique which causes the error but how can i handle such error

Model

 <?php

namespace App;

use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable {
    protected $table = "users";
protected $fillable = array('first_name', 'last_name', 'password', 'email');
protected $hidden = ['password', 'remember_token'];

public function roles() {
    return $this->belongsToMany('App\Role', 'user_role', 'user_id', 'role_id');
}

public function hasAnyRole($roles) {
    if(is_array($roles)) {
        foreach($roles as $role) {
            if($this->hasRole($role)) {
                return true;
            }
        }
    }
    else {
        if($this->hasRole($roles)) {
            return true;
        }
    }

    return false;
}

public function hasRole($role) {
    if($this->roles()->where('name', $role)->first()) {
        return true;
    }

    return false;
    }
}

Controller

    <?php

namespace App\Http\Controllers;
use App\Post;
use App\ContactMessage;
use App\User;
use App\Role;
use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Auth;

class AdminController extends Controller {
    public function postSignUp(Request $request) {
    $rules = [
        'first_name' => 'required|min:3|max:80|alpha',
        'last_name' => 'required|min:3|max:80|alpha',
        'email' => 'required|between:3,64|email',
        'password' => 'required|alphaNum|between:4,8|confirmed',
        'password_confirmation'=> 'required|alphaNum|between:4,8'
    ];

    $validator = Validator::make(Input::all(), $rules);

    if($validator->fails()){
        return Redirect::route('signup')->withErrors($validator)->withInput();
    }

    $user               = new User();
    $user->first_name   = $request['first_name'];
    $user->last_name    = $request['last_name'];
    $user->email        = $request['email'];
    $user->password     = bcrypt($request['password']);

    if($user->save()){dd('aaaaa');
        $user->roles()->attach(Role::where('name', 'User')->first());

        Auth::login($user);

        return redirect()->route('blog.index');
   }
   else {
       dd('sssss');
   }
    }
}

Routes

Route::get('/signup', ['uses' => 'AdminController@getSignUp','as' => 'signup']);
Route::post('/signup', ['uses' => 'AdminController@postSignUp','as' => 'signup']);
  • 写回答

2条回答 默认 最新

  • doutiaosu2310 2016-08-21 19:38
    关注

    Only update your rules like this:

    $rules = [
        'first_name' => 'required|min:3|max:80|alpha',
        'last_name' => 'required|min:3|max:80|alpha',
        'email' => 'required|between:3,64|email|unique:users',
        'password' => 'required|alphaNum|between:4,8|confirmed',
        'password_confirmation'=> 'required|alphaNum|between:4,8'
    ];
    

    you can check this documentation on this link: https://laravel.com/docs/5.2/validation#rule-unique

    Regards

    评论

报告相同问题?

悬赏问题

  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000