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); } } } })