如何防止在刷新LaravelWeb应用程序用户插入页面时多次在数据库中插入相同的数据。我生成唯一的用户 ID。 但有时我的互联网连接丢失并尝试连接。该数据使用相同的用户 ID 插入两次。 如何避免它。
public function savenewusers(Request $request){
$data=$_POST;
$usersid = Auth::user()->id;
$this->validate($request, ['name' => 'required','email'=>'required','role'=>'required','password'=>'required','useraddress'=>'required','district'=>'required']);
$userslastcount=User::OrderBy('id','DESC')->first();
if(count($userslastcount) > 0){
$uniqid=$userslastcount->uniqueid+1;
$userid="EF000".$uniqid;
} else {
$uniqid=1;
$userid="EF000".$uniqid;
}
if(isset($data['managerid'])){
$managerid=$data['managerid'];
} else {
$managerid="";
}
$password=Hash::make($request->password);
$createUsers=User::create(['name'=>$data['name'],'email'=>$data['email'],'password'=>$password]);
$updateUsers=User::Where('id',$createUsers->id)->update(['userid'=>$userid,'officemobileno'=>$data['officemobileno'],'useraddress'=>$data['useraddress'],'district'=>$data['district'],'personalmobileno'=>$data['personalmobileno'],'personalemail'=>$data['personalemail'],'role'=>$data['role'],'managerid'=>$managerid,'uniqueid'=>$uniqid,'enable'=>1]);
alert()->success('User Created Successfully.', 'Success!');
return redirect('users');
}
首先,您必须关注列中的任何人都应该是唯一的电子邮件或用户名。
是否可以像这样使用路由绑定验证:
public function saveNewUsers(UserValidationRequest $request)
{
}
然后,您必须创建验证请求文件。 使用此命令:
php artisan make:request UserValidationRequest
验证文件:UserValidationRequest.php
<?php
namespace AppHttpRequestsUser;
use IlluminateFoundationHttpFormRequest;
class UserValidationRequest extends FormRequest
{
public function authorize()
{
return true;
}
public function rules()
{
return [
'email' => 'required|email|max:255|unique:users,email',
];
}
}
您可以使用firstOrCreate
.
$user = User::firstOrCreate(['name'=>$data['name'],'email'=>$data['email'],'password'=>$password]);
if ($user->wasRecentlyCreated) {
}