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 回傳“ {"code":0,"message":"Username is valid"}”如果驗證通過或如果它失敗回傳錯誤之一示例:3 個字符以下的用戶名然后回傳“ {"code":3,"message":"Usernames can be 3 to 20 characters long"}”
請幫我
uj5u.com熱心網友回復:
您可以自定義驗證訊息,請在此處查看 laravel 檔案。
您的代碼應如下所示:
$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,但您可以對所有規則執行相同的操作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/454903.html
上一篇:C 代碼在驗證后不斷崩潰
