laravel验证唯一性很简单:unique:user,phone 这个就是验证user表的phone字段是否唯一,但是修改数据时这样就验证过不了,怎么办呢?
use Illuminate\Support\Facades\Validator;
$msg = [
'name.required' => '姓名不能为空',
'phone.required' => '手机不能为空',
'phone.regex' => '请输入正确的手机号',
'phone.unique' => '手机号已经存在',
];
$rules = [
'name' => 'required',
//此处注意,phone后面一定要加逗号(,)不然他会把phone和id拼接,从而找不到字段报错
'phone' => 'required|regex:/^1[345789][0-9]{9}$/|unique:user,phone,'.$id,
];
$validator = Validator::make($receive, $rules, $messages);
if($validator->fails()){
$error = '';
foreach ($validator->errors()->getMessages() as $v) {
$error = $v[0];
break;
}
return sendError($error, 422);
}
这样一个验证就可以了。