簡體   English   中英

Laravel 驗證:required_if 條件始終通過

[英]Laravel Validation: required_if condition always passing

根據 laravel 驗證文檔:

required_if:anotherfield,value,... 如果 anotherfield 字段等於任何值,則驗證字段必須存在且不為空。

這是我的測試:

    $validator = Validator::make([
        'assessment' => [
            'hasConfirmation' => 0,
            'expiredDate' => "12/2020"
        ]
    ],
        [
            'assessment.hasConfirmation' => Rule::in([0, 1, null]),
            'assessment.expiredDate' => Rule::requiredIf('assessment.hasConfirmation' === 1),

        ]);

   $validator->passes(); // always return true

我希望因為我沒有通過 1,所以這個測試應該失敗。 但是這個測試總是通過

您可以使用requiredIf的閉包返回 boolean 來確定是否應應用“必需”規則:

$data = [
    'assessment' => [
        'hasConfirmation' => 0,
        'expiredDate' => "12/2020"
    ]
];

$validator = Validator::make($data, [
    'assessment.hasConfirmation' => Rule::in([0, 1, null]),
    'assessment.expiredDate' => Rule::requiredIf(function () use ($data) {
        return data_get($data, 'assessment.hasConfirmation') === 1;
    });
]);

暫無
暫無

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

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