如何在 Laravel 中显示 JQuery post() 函数的每个错误?

How to display each error from JQuery post() function in Laravel?

我现在卡住了。我一直在尝试类似帖子中的所有答案,但我无法让它发挥作用。 我得到了这个表格,用户可以在其中更新 his/her 信息。当停止输入或关注输入文本框时,我向控制器发送请求以将信息更新到数据库中。当发送给它时,控制器会验证该信息,如果发现错误,它会 returns 使用以下代码找到的错误列表:

if($validator->fails()){
   //return $validator->messages()->toJson(); This DOES NOT WORK :/
   $messages = $validator->Messages()->all();
   return Response::json($messages);// THIS DOES WORK!!! :)
}

当出现一个错误时,我得到的 json 类型如下:

{"nombre_pila":["The field nombre pila is required."]}

如果发现两个错误:

{"nombre_pila":["The nombre pila must be at least 3 characters.","The nombre pila may only contain letters."]}

在脚本方面,我尝试使用以下代码来解决这些错误:

$.post(url, editform, function(data,status){
  $('#formedit2 input').removeClass('loadinggif');
  if(data=='success'){
    //alert('Dato '+currentId+' actualizado exitosamente! Status: ' + status);
    $('#formedit2 input').removeClass('loadinggif');
    $('#'+currentId).closest('.form-group').addClass('has-success').addClass('has-feedback');
  }else{
    $('#formedit2 input').removeClass('loadinggif');
    $('#'+currentId).closest('.form-group').addClass('has-error');
    alert('Unknown process. Status: '+status+'. Data: '+data);
    $.each(data,function(i,error){
       console.log(error);
    });
    }
});

我收到以下错误:

TypeError: invalid 'in' operand a

我不知道如何显示每个发现的错误。我错过了什么?

因为您的错误数组在对象键 nombre_pila 内,所以不是:

$.each(data,function(i,error){
    console.log(error);
});

做:

$.each(data.nombre_pila,function(i,error){
    console.log(error);
});