laravel 表单验证

以下为我创建的一个 API Validator 的 VIM Code Snippet

$rsp = ['err_code' => 0, 'err_msg' => 'OK',];
$input = $request->all();

$rules = [
	'name' => 'required',
	'person_tel' =>'required|regex:/^1[0-9]{10}$/',
	'code' => 'required|digits:6',
];

$messages = [
	'name' => '请填写公司名称',
	'person_tel' => '请填写正确的手机号',
	'code' => '请填写正确的验证码',
];

$validator = Validator::make($input, $rules, $messages);
$validator->after(function ($validator) use ($request) {
	$redis_code = Redis::get(env('APP_NAME').'sms'.$request->get('person_tel'));
	if ($redis_code != $request->get('code')) {
		$validator->errors()->add('code', '验证码错误');
	}
});

if ($validator->fails()) {
	$rsp['err_code'] = -1;
	$rsp['err_msg'] = "数据校验失败";
	$rsp['data'] = $validator->errors()->all();
	return response()->json($rsp);
}

为何要使用 validator after

after 的调用时机是在主动调用 fails 的时候,这样做非常方便去添加一些我们业务相关的自定义校验规则

猜你喜欢

转载自www.cnblogs.com/sgm4231/p/10193809.html