Laravel 使用请求类时如何将验证响应作为json

Laravel 使用请求类时如何将验证响应作为json,laravel,validation,laravel-5.8,Laravel,Validation,Laravel 5.8,我有这些注册新客户的请求文件,我想在验证失败时成为响应json,我怎么做 这是请求类 <?php namespace App\Http\Requests\Validations; use App\Http\Requests\Request; class RegisterCustomerRequest extends Request { public function authorize() { return true; } public function rules()

我有这些注册新客户的请求文件,我想在验证失败时成为响应json,我怎么做

这是请求类

<?php

namespace App\Http\Requests\Validations;

use App\Http\Requests\Request;


class RegisterCustomerRequest extends Request
{

public function authorize()
{
    return true;
}

public function rules()
{
    return [
        'name' => 'required|min:3|max:255',
        'email' => 'required|email|max:255|unique:customers',
        'password' => 'required|string|min:6|confirmed',
        'agree' => 'required',
    ];
}
}

在您的
RegisterCustomerRequest
中,您可以覆盖默认方法
failedValidation
,如下所示

 protected function failedValidation(Validator $validator)
    {

        if ($this->ajax()){

            throw new HttpResponseException($this->respondWithError(419,'VALIDATION_ERROR',$validator->errors()));
        } else{
            throw (new ValidationException($validator))
                ->errorBag($this->errorBag)
                ->redirectTo($this->getRedirectUrl());
        }


    }
您还可以在
$this->ajax()中编写自己的响应,如下所示

if ($this->ajax()){
     return response()->json($validator->errors(),419);
}

这很有效,谢谢。@如果有用的话,不要放弃投票。
if ($this->ajax()){
     return response()->json($validator->errors(),419);
}