我的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中遇到过这个问题?
答案 0 :(得分:1)
在Upgrade guide中,您可以阅读:
在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);