我收到2 errore而使用已經被插入BE完整性約束違規:1062重複條目
電子郵件提交申請表單完整性約束違規:1062重複項「[email protected]」關鍵'users_email_unique'
。
SQLSTATE [23000]:完整性約束衝突:關鍵 'users_email_unique' 1062重複項 '[email protected]'
我有數據庫索引users_email_unique這將導致錯誤,但我怎麼能處理這樣的錯誤
型號
<?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;
}
}
條
控制器
<?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');
}
}
}
路線
Route::get('/signup', ['uses' => '[email protected]','as' => 'signup']);
Route::post('/signup', ['uses' => '[email protected]','as' => 'signup']);
[Laravel趕上雄辯的 「唯一」 字段錯誤(HTTP的可能重複://計算器.COM /問題/ 27878719/laravel-追趕雄辯唯一場誤差) – ArSeN