laravel Validator ajax返回错误信息


将return back()->withErrors($validator->errors())->withInput();替换为下面的代码

$validator = \Validator::make($request->input(), $rules, $messages);
if ($validator->fails()) {
    //将返回错误循环组装成字符串
    $arr = [];
    foreach ($validator->getMessageBag()->toArray() as $k=>$error){
         array_push($arr, "<li>".$error[0]."</li>");
    }
    $str = implode(' ', $arr);
    return \Response::json([
    'success' => false,
    'errors' => $str
    ]);
}

 

然后直接在ajax输出相应的错误就行了

<div class="alert alert-danger alert-dismissible fade in" style="display: none;" id="yc">
    <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
    <ul class="margin-bottom-none padding-left-lg" id="li1">
    </ul>
</div>

 

$.ajax({
    method: 'post',
    data: form,
    dataType:'json',
    url: $('#url').val(),
    success: function (data) {
        //console.log(data);
        if (data.code == 0){
            $('#textarea').html(JSON.stringify(data.resp, null, "\t")).css("display","block");
        } else if(data.code == 1) {
            layer.msg("失败"+data.msg,{icon:2})
        } else if (data.success == false) {
            if (data.errors){
                $('#yc').css('display','block');
                $('#li1').html(data.errors);
            }
        }
    }
})

 

posted @ 2019-11-26 09:16  柒色彩虹  阅读(603)  评论(0编辑  收藏  举报