Laravel 5.1 - Return FormRequest 验证的第一个错误

Laravel 5.1 - Return First Error From FormRequest Validation

我有以下表单请求:

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);

    }



}

如何 return 错误数组中的第一个错误。

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

我正在使用 iframe 提交,这就是为什么我需要 return 上面的响应。

感谢任何帮助。

您似乎需要使用 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
}

我必须执行以下操作:

$errors['file'][0]