2017-09-14 50 views
0

下面是流明我的服务器端验证:如何将错误映射到现场?

$rules = array(
      'prog_code' => 'required', 
      'payer_id' => 'required', 
     ); 
     $validator = \Validator::make($post, $rules); 
     if (!$validator->fails()) { 
      try { 
       // Start Logic Here 
      } catch (\Exception $e) { 

      } 
     } else { 
      $errors = $validator->errors(); 
      return response()->json($errors->all()); 
     } 

,并返回错误象下面这样:

[ 
    "The prog code field is required.", 
    "The payer id field is required.", 
] 

,但问题是我如何映射该领域的,因为我想显示的错误在特定文本字段下的错误。

我们可以自定义错误象下面这样:

[ 
     [prog_code] => "The prog code field is required.", 
     [payer_id] => "The payer id field is required.", 
] 

回答

0

如果转储$errors变量,你有一个像你的目标错误的数组:

ViewErrorBag {#406 
    #bags: array:1 [ 
    "default" => MessageBag {#407 
     #messages: array:1 [ 
     "pin" => array:1 [ 
      0 => "The Programming Code is required Sir!" 
     ] 
     ] 
     #format: ":message" 
    } 
    ] 
} 

$errors变量通过验证时注入有错误

+0

不工作的人..它给同样的错误总结,我怎么没有。 –

+0

刚刚从生产项目中粘贴了一个工作示例,它如何工作?清除您的缓存或其他东西 – aaron0207

+0

其工作正常..其验证以及。但我的问题是不同的.. PLZ读一次我的上述问题。 –

1

我实现同样的回应的方式是做:

if ($validator->fails()) { 
    $errors = []; 

    foreach ($validator->errors()->toArray() as $field => $message) { 
    $errors[$field] = $message[0]; 
    } 

    return response()->json($errors); 
}