以下为我创建的一个 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 的时候, 这样做非常方便去添加一些我们业务相关的自定义校验规则
来源: http://www.bubuko.com/infodetail-2901089.html