0

我的 Request 类中有以下代码,它返回自定义消息。

public function formatErrors(\Illuminate\Contracts\Validation\Validator $validator) {
    if($validator->fails()) {
        $validator->errors()->add('Message', "Validation failed");
    }
    return parent::formatErrors($validator);
}

它在 Laravel 5.4 中返回错误消息,但似乎此功能在 Laravel 5.5 中不再有效

有人在 Laravel 5.5 中遇到过这个问题吗?

4

1 回答 1

1

升级指南中,您可以阅读:

在 Laravel 5.5 中,所有异常,包括验证异常,都由异常处理程序转换为 HTTP 响应。此外,JSON 验证错误的默认格式已更改。新格式符合以下约定: ...

所以你应该做的是将app\Exceptions\Handler.php以下方法添加到文件中:

protected function invalidJson($request, ValidationException $exception)
{
    return response()->json([
        'message' => 'Validation failed',
        'errors' => $exception->errors(),
    ], $exception->status);
} 

显然你可能想要更多地调整这个方法,因为在以前的 Laravel 版本中它默认是这样的:

return response()->json($exception->errors(), $exception->status);
于 2017-12-20T18:26:17.927 回答