【问题标题】:Get pure error message from form validation in Laravel?从 Laravel 的表单验证中获取纯错误消息?
【发布时间】:2015-04-07 08:10:27
【问题描述】:

我正在使用 laravel 开发 REST 服务。我想从 laravel 表单验证中获得准确的错误消息 控制器

$validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));
    if ($validator->fails()) {
        $this->res_err_data['error'] = $validator->messages();
        return Response::json($this->res_err_data, 400);
    }

错误信息

{
    "status": "2",
    "data": [],
    "error": {
        "email": [
            "The email field is required."
        ]
    }
}

我只想收到电子邮件错误消息"The email field is required." 而不是["The email field is required."]

【问题讨论】:

    标签: php angularjs validation laravel-4


    【解决方案1】:

    试试这个...

    Add following line after email field
    
      {{ $errors->first('email', '<div class="errorsetting">:message</div>') }}
    
    Add following line after "$validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));"
    
    if ($validator->fails()) {
    
    return Redirect::to('toyourpage')->withInput()->withErrors($validation->messages());
    
    }
    

    【讨论】:

    • 我正在开发 REST web 服务,所以需要显示 JSON 而不是重定向。1
    【解决方案2】:

    你可以使用array_map() 来改变结构:

    $meessages = $validator->messages();
    $this->res_err_data['error'] = array_map(function($errors){
        return isset($errors[0]) ? $errors[0] : null;
    }, $messages);
    

    【讨论】:

      【解决方案3】:

      像这样在你的代码中使用$validator-&gt;errors()-&gt;first()

      $validator = Validator::make(array('email' => Input::get('email')), array('email' => array('required', 'email')));
      if ($validator->fails()) {
          $this->res_err_data['error'] = $validator->errors()->first();
          return Response::json($this->res_err_data, 400);
      }
      

      【讨论】:

        猜你喜欢
        • 2016-05-27
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 2017-05-12
        • 2017-05-04
        • 2018-04-19
        • 2012-11-05
        相关资源
        最近更新 更多