Laravel 使用请求类时如何将验证响应作为json
我有这些注册新客户的请求文件,我想在验证失败时成为响应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()
<?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);
}