让我的表单通过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
感谢。
答案 0 :(得分:1)
如果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');
}
}