我有 3 個欄位:電子郵件、電話和手機。
我想設定一個驗證規則,這三個欄位之一是必需的,哪個欄位都沒有關系。
我試過了,但它不起作用,不需要欄位:
public static array $createValidationRules = [
'email' => 'string|email:rfc,dns|required_without_all:mobile_phone_number,telephone',
'telephone' => 'max:15|required_without_all:mobile_phone_number,email',
'mobile_phone_number' => 'max:15|required_without_all:email,telephone',
];
$validator = Validator::make(request()->input('contact_person'), ContactPerson::getCreateValidationRules());
if($validator->fails())
return new Response($validator->errors(),
uj5u.com熱心網友回復:
嘗試以下操作:
public static array $createValidationRules = [
'email' => 'string|email:rfc,dns|nullable',
'telephone' => 'max:15|required_without_all:mobile_phone_number,email',
'mobile_phone_number' => 'max:15|required_without_all:email,telephone',
];
未經個人測驗,但請嘗試以下操作,看看它是否有效:
public static array $createValidationRules = [
'identifier' => 'required_without_all:email,telephone,mobile_phone_number'
];
作為驗證訊息,您可以說至少需要一個識別符號。
uj5u.com熱心網友回復:
根據官方檔案
僅當所有其他指定欄位為空或不存在時,驗證欄位必須存在且不為空。
這意味著您的代碼唯一有效的時間是所有其他欄位都不存在時。
您可以嘗試使用 required_without
public static array $createValidationRules = [
'email' => 'string|email:rfc,dns|required_without:mobile_phone_number,telephone',
'telephone' => 'max:15|required_without:mobile_phone_number,email',
'mobile_phone_number' => 'max:15|required_without:email,telephone',
];
現在,即使電話存在而 mobile_phone_number 不存在;您的電子郵件欄位將是必需的。
所以我的猜測是這些欄位之一存在,盡管您認為它們不存在(可能是空字串 "" 或其他東西)。您可以在驗證之前使用簡單的 dd 函式進行檢查。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/411080.html
標籤:
