我正在制作一個API,允許用戶輸入一些資訊,如電子郵件、電話號碼、地址...。 但是,如果用戶輸入錯誤的電話號碼,驗證錯誤是
。{
"message": "給出的資料是無效的。"。
"錯誤": {
"phone": [
"該電話已被占用。"。
]
}
}
正如你所看到的,回傳的資訊是
。" message": "給出的資料是無效的。"。
. 但我期望的資訊是該手機已經被拿走了。我怎樣才能按照我的期望定制訊息呢?用一個電子郵件驗證器,資訊是相同的,但關鍵是email。我期望的訊息是
"message"。"這個...已經被拿走了。"/span>
我使用的是laravel 8,在Request中進行驗證。
例如一個函式rules()
public function rules()
{
return [
'profile_img' => 'nullable|image|mimes:jpeg,png,jpg,gif,svg|max:' . config(' filesystems.max_upload_size') 。
'name' => 'nullable|min:3'。
'phone' => [
'required',
'numeric',
new UpdatePhoneRule(User::TYPE_CLIENT)。
],
'email' => [
'nullable',
'email',
new UpdateEmailRule(User::TYPE_CLIENT)。
]
];
}
謝謝你
uj5u.com熱心網友回復:
你可以在lang檔案中這樣做。resources/lang/en/validation.php。如果你想做的只是改變,例如,在整個應用程式中的一個電子郵件欄位上的唯一規則的資訊,你可以做:
/*
|--------------------------------------------------------------------------
|自定義驗證語言行
|--------------------------------------------------------------------------
|
| 在這里,你可以使用 "屬性.規則 "來指定屬性的自定義驗證資訊。
| 慣例 "attribute.rule "來命名這些行。這使得你可以快速
| 為一個給定的屬性規則指定一個特定的自定義語言行。
|
*/
'custom' => [
'attribute-name' => [
'rule-name' => 'custom-message',
],
'email' => [
'unique' => 'this email is already registered...etc',
]
],
uj5u.com熱心網友回復:
你必須在你的驗證中使用unique
$this-> validate(
$request,
[
'email' => 'required|unique:your_model_names',
'phone' => 'required|unique:your_model_names'.
],
[
'email.required' => 'Please provide Your Email Address For Better Communication, Thank You',
'email.unique' => '對不起,這個電子郵件地址已經被其他用戶使用。請換一個,謝謝。'。
'phone.required' => '你的自定義資訊'。
'phone.unique' => '該電話已被占用'。
);
uj5u.com熱心網友回復:
在Request php檔案中,你可以使用這個函式 failedValidation() 并傳入一個驗證器。這樣,如果驗證失敗,你可以改變或自定義回應。
use IlluminateHttpExceptionsHttpResponseException。
使用 IlluminateContractsValidationValidator。
protected function failedValidation(Validator $validator) {
throw new HttpResponseException(response()->json(['status'=>' failed',
' message'=>'unprocessable entity',
'errors'=>$validator->errors()->all()], 422)。)
}
回應樣本在這里。
{
"status": "失敗"。
"message": "無法處理的物體"。
"錯誤": [
"名稱必須是一個字串。"。
"需要一個或多個用戶"。
]
}
正如你所看到的,現在資訊已經改變了,你可以在回應資訊上做任何你想做的事情。
你也可以試試這個
$validator->errors()->mages()[keyname]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/324219.html
標籤:
下一篇:Laravel8提取包含重復的行
