【问题标题】:Laravel 5.1 - Return First Error From FormRequest ValidationLaravel 5.1 - 从 FormRequest 验证返回第一个错误
【发布时间】:2017-06-30 00:05:38
【问题描述】:

我有以下表单请求:

class FileRequest extends Request
{

   public function authorize()
   {
      return true;
   }

   public function rules()
   {

      $rules = [];

      if($this->file_type == 'image')
         $rules['file'] = 'required|image|mimes:jpg,jpeg,gif|max:244|image_size:>=360,>=180';
    else
         $rules['file'] = 'required|mimes:doc,pdf,docx,txt,rtf|max:1000';

      return $rules;

   }

   public function messages()
   {
      $messages = [
        'file.image_size' => 'The image size is incorrect.'
      ];

      return $messages;
   }

   public function response(array $errors)
   {
        $content = "<textarea data-type=\"application/json\">{\"ok\": false, \"message\": \"" . $errors[0] . "\" }</textarea>";
         return response($content);

    }



}

如何从错误数组中返回第一个错误。

当我手动创建验证器时,我可以执行以下操作:$validator-&gt;errors()-&gt;first(),但这在使用 FormRequest 类时不起作用。执行errors[0] 只会给我一个偏移异常错误。

我正在使用 iframe 提交,这就是我需要返回上述响应的原因。

任何帮助表示赞赏。

【问题讨论】:

    标签: php arrays validation laravel-5.1


    【解决方案1】:

    我必须执行以下操作:

    $errors['file'][0]
    

    【讨论】:

      【解决方案2】:

      您似乎需要使用 laravel 的验证器系统。 之后你可以使用: $validator->messages() ;因为有所有的错误。 如果你使用 $validator->messages()[0];你会收到第一条消息。

      我建议你这样做

           public function store(Request $request)
          {
           $validator = Validator::make($request->all(), [
              'file' =>'required|image|mimes:jpg,jpeg,gif|max:244|image_size:>=360,>=180';
      
          ]);
      
          if ($validator->fails()) {
              return redirect('post/create')
                          ->withErrors($validator)
                          ->withInput();
          }
      
          // Store the file
      }
      

      【讨论】:

      • 我知道如何通过制作验证器来做到这一点,但我正在使用表单请求类,我想在我的表单请求类中实现它。
      • 受保护的函数 formatErrors(Validator $validator) { return $validator->errors()->all(); } 你试过了吗?
      猜你喜欢
      • 2020-07-26
      • 2023-01-21
      • 2015-10-09
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多