簡體   English   中英

Laravel 驗證必須填寫兩個字段之一

[英]Laravel Validation one of two fields must be filled

我有兩個領域:

QQ

電子郵件

如何設置驗證器對象,以便必須填寫這些字段之一? 哪個沒關系。


$messages = array(
    'email.required_without:qq' => Lang::get('messages.mustenteremail'),
    'email.email' => Lang::get('messages.emailinvalid'),
    'qq.required_without:email' => Lang::get('messages.mustenterqq'),
);

required_without應該可以工作。

這意味着如果其他字段不存在,則該字段是必需的。 如果有兩個以上的字段並且只需要一個,請使用required_without_all:foo,bar,...

$rules = array(
    'Email' => 'required_without:QQ',
    'QQ' => 'required_without:Email',
);

在上面的示例中(由 lucasgeiter 給出),您實際上只需要其中一個條件,而不是兩個條件都需要。

$rules = array(
    'Email' => 'required_without:QQ'
);

如果您同時擁有這兩個規則,那么兩個都不填寫將導致顯示兩條錯誤消息。 這樣,它將檢查是否至少填寫了一個字段,如果兩者都未填寫,則只會顯示一條錯誤消息。

Laravel >= 8.32 僅支持。

兩者(手機或電子郵件)同時呈現 -> 通過錯誤。

兩者(手機或電子郵件)不同時存在->通過錯誤。

允許

只能允許一個參數。

'email'  =>  [ 'prohibited_unless:mobile,null,','required_without:mobile','email', 'max:255', ],
'mobile' =>  [ 'prohibited_unless:email,null','required_without:email', 'digits_between:5,13', 'numeric' ],

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM