如何使用 Laravel 自定义验证消息?
How to customize validation messages using Laravel?
public function UserCheck(Request $request)
{
$Code0 = array("code" => 0, "message" => "Username is valid");
$Code1 = array("errors" => array(array("code" => 1, "message" => "A valid username is required.", "userFacingMessage" => "Something went wrong")));
$Code2 = array("code" => 2, "message" => "Username not appropriate for ". config('app.name'));
$Code3 = array("code" => 3, "message" => "Usernames can be 3 to 20 characters long");
$validate = $request->validate([
'username' => ['required', 'string', 'min:3', 'max:20', 'unique:users', 'regex:/^[a-zA-Z0-9_]*$/'],
]);
}
如果验证失败,我该如何让 API 显示自定义错误消息?我读了这个 https://laravel.com/docs/9.x/validation#quick-writing-the-validation-logic 但它没有帮助
还有,正则表达式,有什么办法只能在中间,不超过1个吗?
我已经尝试阅读谷歌搜索有关验证查询的文档,但没有任何帮助
我希望 API 到 return “{"code":0,"message":"Username is valid"}
” 如果验证通过或者如果验证失败 return 错误示例之一:用户名低于 3 个字符然后 return “ {"code":3,"message":"Usernames can be 3 to 20 characters long"}
"
请帮帮我
您可以自定义验证消息,请查看 laravel 文档 here。
您的代码应如下所示:
$messages = [
'min' => json_encode(['code'=> 3, 'message' => 'Username must be at least 3 characters']),
];
$validator = Validator::make($request->all(), [
'username' =>
[
'required',
'string',
'min:3',
'max:20',
'unique:users',
'regex:/^[a-zA-Z0-9_]*$/'
]
], $messages);
if ($validator->fails()) {
return response()->json($validator->messages(), 422);
}else{
return response()->json(["code" => 0, "message" => "Username is valid"]);
}
此处仅针对 min
规则自定义消息,但您可以对所有规则执行相同的操作。
public function UserCheck(Request $request)
{
$Code0 = array("code" => 0, "message" => "Username is valid");
$Code1 = array("errors" => array(array("code" => 1, "message" => "A valid username is required.", "userFacingMessage" => "Something went wrong")));
$Code2 = array("code" => 2, "message" => "Username not appropriate for ". config('app.name'));
$Code3 = array("code" => 3, "message" => "Usernames can be 3 to 20 characters long");
$validate = $request->validate([
'username' => ['required', 'string', 'min:3', 'max:20', 'unique:users', 'regex:/^[a-zA-Z0-9_]*$/'],
]);
}
如果验证失败,我该如何让 API 显示自定义错误消息?我读了这个 https://laravel.com/docs/9.x/validation#quick-writing-the-validation-logic 但它没有帮助
还有,正则表达式,有什么办法只能在中间,不超过1个吗?
我已经尝试阅读谷歌搜索有关验证查询的文档,但没有任何帮助
我希望 API 到 return “{"code":0,"message":"Username is valid"}
” 如果验证通过或者如果验证失败 return 错误示例之一:用户名低于 3 个字符然后 return “ {"code":3,"message":"Usernames can be 3 to 20 characters long"}
"
请帮帮我
您可以自定义验证消息,请查看 laravel 文档 here。
您的代码应如下所示:
$messages = [
'min' => json_encode(['code'=> 3, 'message' => 'Username must be at least 3 characters']),
];
$validator = Validator::make($request->all(), [
'username' =>
[
'required',
'string',
'min:3',
'max:20',
'unique:users',
'regex:/^[a-zA-Z0-9_]*$/'
]
], $messages);
if ($validator->fails()) {
return response()->json($validator->messages(), 422);
}else{
return response()->json(["code" => 0, "message" => "Username is valid"]);
}
此处仅针对 min
规则自定义消息,但您可以对所有规则执行相同的操作。