如何使用Laravel在以下关键情况下验证更新案例中的记录?
How to Validate Record in Update Case in the Following Critical Situation using Laravel?
我想更新记录但在更新之前我想检查:-
1.如果用户存在时间不允许更新。
示例:-
用户 jay 尝试更新他的名字,但是用户插入了 jay 字段中已经存在的相同名字。有时我想允许用户更新,但此代码给出用户名已存在的错误。我该怎么办??
控制器:-
public function update_data($update_id){
$gender_list = ['Male', 'Female', 'Other'];
$country_list = ['India', 'US', 'UK', 'Germany', 'Austraila'];
$Validator = $this->validate(request(), [
'username' => 'required|unique:userlists|alpha_num|max:30',
'email' => ['required', 'unique:userlists', 'email', 'regex:/((yahoo|gmail|hotmail)\.com)/'],
'password' => 'required',
'bod' => 'required|after_or_equal:today',
'comments' => 'required',
'phone_no' => 'required|numeric',
'country' => 'required|alpha',
'gender' => 'required',
'agreement' => 'required',
],[
'required' => 'Please Enter Your :attribute',
]);
if(!in_array($request->gender, $gender_list) || !in_array($request->country, $country_list)){
session()->flash('G_msg', 'Hello Hackes Please Go Back');
return back();
}
if($Validator->passes()){
// updation code.
}
}
尝试独特
'username' => 'required|unique:table_name,username,' . $update_id . ',user_id',
您可以像下面这样使用验证:
'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]
确保规则在上面定义 Class:
use Illuminate\Validation\Rule;
您可以使用Rule
use Illuminate\Validation\Rule;
'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]
我想更新记录但在更新之前我想检查:- 1.如果用户存在时间不允许更新。
示例:-
用户 jay 尝试更新他的名字,但是用户插入了 jay 字段中已经存在的相同名字。有时我想允许用户更新,但此代码给出用户名已存在的错误。我该怎么办??
控制器:-
public function update_data($update_id){
$gender_list = ['Male', 'Female', 'Other'];
$country_list = ['India', 'US', 'UK', 'Germany', 'Austraila'];
$Validator = $this->validate(request(), [
'username' => 'required|unique:userlists|alpha_num|max:30',
'email' => ['required', 'unique:userlists', 'email', 'regex:/((yahoo|gmail|hotmail)\.com)/'],
'password' => 'required',
'bod' => 'required|after_or_equal:today',
'comments' => 'required',
'phone_no' => 'required|numeric',
'country' => 'required|alpha',
'gender' => 'required',
'agreement' => 'required',
],[
'required' => 'Please Enter Your :attribute',
]);
if(!in_array($request->gender, $gender_list) || !in_array($request->country, $country_list)){
session()->flash('G_msg', 'Hello Hackes Please Go Back');
return back();
}
if($Validator->passes()){
// updation code.
}
}
尝试独特
'username' => 'required|unique:table_name,username,' . $update_id . ',user_id',
您可以像下面这样使用验证:
'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]
确保规则在上面定义 Class:
use Illuminate\Validation\Rule;
您可以使用Rule
use Illuminate\Validation\Rule;
'username' => ['required','alpha_num', 'max:30',Rule::unique('userlists')->ignore($update_id)]