让我的表单通过AJAX提交,并从验证器返回错误,但不确定如何访问它们。
所以我在我的控制器中返回这样的错误:
$validator = Validator::make($data, $rules, $messages);
if ($validator->fails()) {
return Response::json(array(
'errors' => $validator->messages()->all(),
200)
);
}
(使用firebug)我看到JSON是:
errors: Array
0: "This field is required"
等等。我正在寻找一种方法来处理所有可能的错误并将其显示给用户。
通常我会在我的控制器中返回:
'empty-field' => true
然后在我的AJAX调用中:
success: function(data) {
if(data.empty-field == true) {
// inform the user of failure
}
}
但这很快就会变成乏味的检查并通过JSON发送每一个可能的错误。有什么方法可以简单地检查返回的任何错误并处理它们吗?很像Laravel在不使用AJAX时处理错误的方式:
@if($errors->has('field'))
<p class="input-message input-error full-width">{{ $errors->first('field') }}</p>
@endif
谢谢。
如果JS data.empty-field
是data.empty substract field
,则应该使用data['empty-field']
与Laravel模板一样,您可以计算错误:errors.length,而无需检查每个错误。
success: function(data) {
if(data.errors.length) {
alert('There are ' + data.errors.length + ' errors');
}
}