我知道laravel为每个验证规则提供可自定义的错误消息,但是有没有办法更改json结果的 答案 0 :(得分:3) 在您的场所班级上添加自定义消息,如下所示: 然后在控制器上添加消息作为第三个参数。 答案 1 :(得分:1) 您绝对可以创建自己的Exception类,并指示laravel使用它来答复响应。 假设您自己的自定义Exception类为 以上内容将确保使用您的自定义错误响应格式。您还可以将其添加到Trait并将其包含在所有请求类中,或者仅创建其他人应该扩展的基本Request类。 答案 2 :(得分:1) “给定数据无效。”消息实际上是异常类消息,该消息不容易配置:message
部分呢?我似乎在docs上找不到任何内容。 {
"message": "The given data was invalid.",
"errors": {
"email": [
"The email has already been taken."
]
}
}
3 个答案:
public static function messages($id = '') {
return [
'name.required' => 'You must enter your name',
'logo.required' => 'You must upload logo',
'key.rules' => 'your messages'
];
$this->validate($request, Venue::rules(), Venue::messages());
Illuminate\Http\Exceptions\HttpResponseException
,则只需在表单请求类中覆盖failedValidation
方法,并具有类似的内容。use Illuminate\Http\Response;
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;
...
/**
* @param Validator $validator
* @throws HttpResponseException
*/
protected function failedValidation(Validator $validator)
{
throw new HttpResponseException(
response()->json(
[
'message' => 'My message',
'errors' => $validator->errors()->get('*') //or ->all() instead of get()
],
Response::HTTP_UNPROCESSABLE_ENTITY
)
);
}