W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
某些情況下,您可能 只想 當(dāng)字段有值時(shí),才進(jìn)行驗(yàn)證。這時(shí)只要增加 sometimes 條件進(jìn)條件列表中,就可以快速達(dá)成:
$v = Validator::make($data, [
'email' => 'sometimes|required|email',
]);
在上述例子中,email 字段只會(huì)在當(dāng)其在 $data 數(shù)組中有值的情況下才會(huì)被驗(yàn)證。
有時(shí),您可以希望給指定字段在其他字段長(zhǎng)度有超過(guò) 100 時(shí)才驗(yàn)證是否為必填?;蛘吣M袃蓚€(gè)字段,當(dāng)其中一字段有值時(shí),另一字段將會(huì)有一個(gè)默認(rèn)值。增加這樣的驗(yàn)證條件并不復(fù)雜。首先,利用您尚未更動(dòng)的 靜態(tài)規(guī)則 創(chuàng)建一個(gè) Validator 實(shí)例:
$v = Validator::make($data, [
'email' => 'required|email',
'games' => 'required|numeric',
]);
假設(shè)我們的網(wǎng)頁(yè)應(yīng)用程序是專(zhuān)為游戲收藏家所設(shè)計(jì)。如果游戲收藏家收藏超過(guò)一百款游戲,我們希望他們說(shuō)明為什么他們擁有這么多游戲。如,可能他們經(jīng)營(yíng)一家二手游戲商店,或是他們可能只是享受收集的樂(lè)趣。有條件的加入此需求,我們可以在 Validator 實(shí)例中使用 sometimes 方法。
$v->sometimes('reason', 'required|max:500', function($input)
{
return $input->games >= 100;
});
傳遞至 sometimes 方法的第一個(gè)參數(shù)是我們要條件式認(rèn)證的字段名稱(chēng)。第二個(gè)參數(shù)是我們想加入驗(yàn)證規(guī)則。 閉包(Closure) 作為第三個(gè)參數(shù)傳入,如果返回值為 true 那該規(guī)則就會(huì)被加入。這個(gè)方法可以輕而易舉的建立復(fù)雜的條件式驗(yàn)證。您也可以一次對(duì)多個(gè)字段增加條件式驗(yàn)證:
$v->sometimes(['reason', 'cost'], 'required', function($input)
{
return $input->games >= 100;
});
注意: 傳遞至您的 Closure 的 $input 參數(shù)為 Illuminate\Support\Fluent 的實(shí)例且用來(lái)作為獲取您的輸入及文件的對(duì)象。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話(huà):173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: