【问题标题】:How to map errors to the field?如何将错误映射到字段?
【发布时间】:2017-09-14 11:13:26
【问题描述】:

下面是我在 lumen 中的服务器端验证:

$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.",
]

【问题讨论】:

    标签: laravel laravel-5 lumen


    【解决方案1】:

    我实现相同响应的方法是:

    if ( $validator->fails() ) {
      $errors = [];
    
      foreach ( $validator->errors()->toArray() as $field => $message ) {
        $errors[$field] = $message[0];
      }
    
      return response()->json($errors);
    }
    

    【讨论】:

      【解决方案2】:

      如果您转储 $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变量在出现错误时被验证器注入

      【讨论】:

      • 不工作的人.. 它给出了与我没有的相同的错误总结。
      • 刚刚从生产项目中粘贴了一个工作示例,它怎么不起作用?清除缓存什么的
      • 它工作正常..它的验证也是如此。但我的问题不同..请阅读我上面的问题一次。
      • 也许你可以这样做:'prog_code.required' => json_encode(['prog_code' => 'The Programming Code is required Sir!']),
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-10
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多