我正在使用 Postman 對我的 API 路由進行以下呼叫,一切正常,直到我強制驗證錯誤。回傳的錯誤物件不包含驗證錯誤的完整串列,而只有如下內容:
{"message":"The given data was invalid.","errors":{"email":["validation.email"],"password":["validation.min.string"]}}
我想要的是它應該回傳完整的錯誤訊息而不是“validation.min.string”。
這是我的控制器方法:
public function __invoke(Request $request)
{
$credentials = $request->validate([
'email' => 'required|email|max:255',
'password' => 'required|min:8'
]);
$credentials['status'] = true;
if (Auth::attempt($credentials)) {
return response()->json('login success!');
} else {
return response()->json('login failure!');
}
}
這是郵遞員請求的螢屏截圖
截圖在這里
uj5u.com熱心網友回復:
作為我的評論:
- 確保檔案
resources/lang/en/validation.php存在 - 如果是,請確保密鑰
email和min存在
作為旁注:
您可以lang在頂層移動檔案夾,它仍然可以作業。
所以resources/lang/en會變成lang/en
uj5u.com熱心網友回復:
創建新的 FormRequest 類并覆寫下面的方法
protected function failedValidation(Validator $validator) {
$response = [
'status' => false,
'message' => $validator->errors()->first(),
];
throw new HttpResponseException(response()->json($response, 422));
}
或使用此代碼:
use Illuminate\Support\Facades\Validator;
$validator = Validator::make($request->all(), [
// your validation rules
])->stopOnFirstFailure(true);
$validator->validate();
它將只回傳單個驗證訊息
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/372194.html
