我想驗證一個可以是電話號碼或電子郵件地址的請求專案。Laravel 驗證規則或其他選項有什么方法可以處理這個問題嗎?
<?php
namespace App\Http\Requests\UserAuthRequests;
use Illuminate\Foundation\Http\FormRequest;
class AuthenticationUser extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'credentials' => ['required'],
'g-recaptcha-response' => ['required'], ];
}
}
uj5u.com熱心網友回復:
我的建議是撰寫自定義驗證規則,您將有條件地檢查它是否是有效的電子郵件或電話號碼。
Validator::extend('email_or_phone', function ($attribute, $value, $parameters, $validator) {
return
$validator->validateDigitsBetween($attribute, $value, [8, 10]) ||
$validator->validateEmail($attribute, $value, []);
});
boot
例如在方法中撰寫此代碼AppServiceProvider
。我還強烈建議您對自定義規則使用專用類,如下所述:https ://laravel.com/docs/9.x/validation#custom-validation-rules
在這兩種方式中,您最終都會得到如下代碼:
public function rules()
{
return [
'credentials' => ['email_or_phone'], // HERE WE USE OUR CUSTOM RULE
'g-recaptcha-response' => ['required'],
];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/469340.html