如何创建自定义的Laravel FormRequest响应?

时间:2019-10-22 10:18:38

标签: laravel validation request

我正在尝试为错误响应输出以下格式,我的主要问题是为每个验证失败传递自定义代码(在这种情况下为622)和URL:

{
  "errors": [
     {
         "message": "Name is Required",
         "code": 622,
         “info": "http://error.says/docs/v1/errors/622"
     }
   ]
}

但是,以下是生成的错误:

{
    "name": [
        "The name field is required."
    ]
}

我应该创建自己的ValidationException类吗?

这是我的UserRequest,它定义了验证规则:

class UserRequest extends FormRequest
{
    public function authorize()
    {
        return true;
    }

    public function rules()
    {
        return [
            'name' => 'required|string|max:5',
        ];
    }
}

这是我的FormRequest

    protected function failedValidation(Validator $validator)
    {
        throw new ValidationException($validator, $this->response(
            $validator->getMessageBag()->toArray()
        ));
    }

    public function response(array $errors)
    {
        return new JsonResponse($errors, 422);
    }

0 个答案:

没有答案