如何在laravel 5.5.16中捕获422 Unprocessable entry

时间:2017-10-30 07:59:46

标签: api postman laravel-5.5 http-status-code-422

如何在laravel 5.5.16中捕获422 Unprocessable entry?

我在发送http://127.0.0.1:8000/api/topics API请求时收到以下错误消息。

enter image description here

我想自定义此错误。在这方面我想知道哪个类和函数产生此错误及其位置。

1 个答案:

答案 0 :(得分:1)

当Laravel验证您的请求数据且数据错误,无效或无法处理时,会引发422错误。

如果要在额外的Request类中验证数据,可以添加message方法来覆盖错误消息(更多信息here):

/**
 * Get the error messages for the defined validation rules.
 *
 * @return array
 */
public function messages()
{
    return [
        'body.required'  => 'A message is required',
    ];
}

如果您通过$request->validate(...)验证Controller内的数据,则需要使用messages参数内嵌创建自己的Validator类(更多信息here):

$messages = [
    'required' => 'The :attribute field is required.',
];

$validator = Validator::make($input, $rules, $messages);