我为一张表创建了一个带有可为空的列。
我已经尝试使用两个不同的查询。一个使用
Register_member::where('passport',$passport)->orWhere('adharcardnumber',$adharcardnumber)->get();
和第二个DB :: table类型查询。
$row = Register_member::where('passport',$passport)->orWhere('adharcardnumber',$adharcardnumber)->get();
if (!empty($row))
{
return response()->json(["status"=>0, "message"=>"Adharcard or Paasport number already exit."]);
}
if (empty($row))
{
Register_member::insert(['first_name'=>request('first_name'), 'middle_name'=>request('middle_name'), 'last_name'=>request('last_name'), 'adharcardnumber'=>request('adharcardnumber'), 'ocipcinumber'=>request('ocipcinumber'), 'passport'=>request('passport'), 'birthday'=>request('birthday'),
'mobilecode'=>request('mobilecode'), 'mobilenumber'=>request('mobilenumber'), 'email'=>request('email'), 'address'=>request('address'), 'landmark'=>request('landmark'), 'area'=>request('area'),
'gender'=>request('gender'), 'pincode'=>request('pincode'), 'city_name'=>request('city_name'), 'state_id'=>request('state_id'), 'country_id'=>request('country_id'), 'sampraday'=>request('sampraday'), 'other'=>request('other'), 'sms'=>request('sms')]);
return response()->json(["status"=>1, "message"=>"Member register successful."]);
}
如果表中存在adharcardnumber或护照号码,则响应为nage。如果两者都具有唯一性,则在表中插入数据
答案 0 :(得分:0)
让我建议您一些我认为可以为您提供良好解决方案的东西。您可以将Unique与required和regex一起使用。这样,它将使用已经推荐的Laravel最佳方法。 以您的adhaar卡为例, 验证应该像这样
$request->validate([
'adhaar ' =>['required','unique:users','regex:/\d{12}/'],
]);
其中 adhar 是输入adhaar编号的文件名。确保使用这样的验证器使用Illuminate \ Support \ Facades \ Validator; 。 $ request也是Request的实例。 使用必需的防止空字段提交,如果模式不完全匹配,则正则表达式将引发错误。因此,我认为这是处理此情况的更好方法。 上述解决方案适用于adhaar和护照。但是对于护照而言,正则表达式将有所不同。 请注意,这些都是演示示例,您可能需要根据需要进行修改。我使用 https://www.phpliveregex.com/ 进行正则表达式制作和检查,这已经足够了。
希望您对如何开始有所了解,但是如果您需要更多信息,请在评论中告诉我。