之前记录过 Laravel Form 表单的数据校验, 但是大部分时间我是在写 API 给前端调用。
如果能够使用 Laravel 的 Validator 来进行 API 的数据校验,将节省我大量的时间。
测试了一下,确实可以,而且非常方便使用。
以下为我创建的一个 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 的时候,这样做非常方便去添加一些我们业务相关的自定义校验规则。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式