博客列表 >laravle 验证器 ajax请求报422解决方法。

laravle 验证器 ajax请求报422解决方法。

有什么是忘不了的的博客
有什么是忘不了的的博客原创
2020年06月13日 14:11:281459浏览

ajax请求验证器验证失败后,会返回一个422状态的错误,我用ajax是没有捕捉到。

然后从百度找啦一个方法吧错误信息获取到,自己生成一个json返回给浏览器。

/**
 * @param $data     验证的数据
 * @param $rules    验证的规则
 * @param $messages 自定义的错误信息
 * @return mixed    验证失败返回对应的错误信息,验证成功无返回值。
 */
protected function  AjaxValidator($data,$rules, $messages){
    $validator = \Validator::make($data, $rules, $messages);
    if ($validator->fails()) {
        //将返回错误循环组装成字符串
        $arr = [];
        foreach ($validator->getMessageBag()->toArray() as $k=>$error){
            array_push($arr, $error[0]);
        }
        $str = implode(' ', $arr);
        return \Response::json([
            'success' => false,
            'errors' => $str
        ]);
    }
}

$rules =[
    'username' => 'required|max:24',
    'password' => 'required|min:6',
    'captcha' => 'required|captcha'
];
$messages = [
    'username.required' => '用户名必填',
    'username.max' => '用户名长度必须小于24',
    'password.required' => '密码必填',
    'password.min' => '密码长度必须大于6',
    'captcha.captcha' => '验证码不正确',
];
$validator = $this->AjaxValidator($request->all(),$rules ,$messages);

最终错误的信息返回:

E@ZE146WF$U{UOELOCR2S9U.png


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议