提问人:0x9342812j1o 提问时间:9/23/2023 更新时间:9/25/2023 访问量:27
如果图像大小超过Laravel中的验证期间,则获取422(不可处理的内容)
Getting 422 (Unprocessable Content) if image size exceeds during validation in Laravel
问:
如何完全消除控制台中显示的 422(不可处理内容)错误?只有当验证失败时才会发生这种情况,例如,上传的图像超出了我在验证中所需的文件大小。
这是我的验证码。
$request->validate([
'message' => 'required|max:5000',
'id' => 'required|integer|exists:users,id',
'content' => 'nullable|integer|exists:contents,id',
'photo' => 'nullable|image|mimes:jpeg,png,jpg|max:2048'
], [
'message.required' => ERR_COMMENT_REQUIRED,
'message.max' => ERR_PHOTO_MAX,
'id.required' => ERR_ID_REQUIRED,
'id.integer' => ERR_ID_INTEGER,
'id.exists' => ERR_ID_EXIST,
'photo.image' => ERR_PHOTO_IMAGE,
'photo.mimes' => ERR_PHOTO_JPG_PNG_GIF,
'photo.max' => ERR_PHOTO_MAX
]);
在我的 ajax 代码中,我已经创建了一个错误处理程序来捕获 422 错误并通知用户发生了什么。到目前为止,它运行良好。我只是不知道如何完全删除控制台窗口中的 422(不可处理内容)错误或是什么原因导致的?我整晚都在挠头,哈哈。希望有人能帮我弄清楚如何解决这个问题。谢谢。
答:
0赞
Ali Raza
9/23/2023
#1
这是不可能的。因为它来自浏览器。 但是,您可以在错误块中清除控制台。但不建议这样做
0赞
Shriyank
9/25/2023
#2
Laravel 验证器将在验证失败时返回 422 状态代码。您可以创建如下所示的验证函数以返回自定义状态代码。
$validator = Validator::make($request->all(), [
'first_name' => 'required',
'last_name' => 'required',
'email' => 'required',
'message' => 'required',
]);
if($validator->fails()){
$errors = collect($validator->errors());
$error = $errors->unique()->first();
return return Response::json([
'success' => false,
'message' => $error[0]
], 200); //custom status code
}
评论
0赞
0x9342812j1o
9/26/2023
我要试试这个。如何在此方法上添加自定义错误消息,类似于我在示例中的错误消息?谢谢。
评论