【问题标题】:Laravel validation: exclude size check when field not requiredLaravel 验证:在不需要字段时排除大小检查
【发布时间】:2021-04-07 16:00:38
【问题描述】:

我在 Laravel 应用程序中进行了验证,但我似乎无法使其工作。

我正在验证 Supplier 模型而不是请求。

public function requestOpening(Supplier $supplier)
{
    $validator = Validator::make($supplier->toArray(), $this->fullValidationRules());
    if ($validator->fails()) {
        return redirect("open-new/supplier/{$supplier->id}")
            ->withErrors($validator);
    }
    // ...
}

我希望只有在 is_hfm == 1 时才需要 hfm_code。我都试过了:

'hfm_code' => 'size:6|exclude_if:is_hfm,0',

'hfm_code' => 'size:6|required_if:is_hfm,1',

在这两种情况下,我都会收到验证错误:

hfm 代码必须为 6 个字符。

is_hfm == 0 时如何忽略尺寸检查?

【问题讨论】:

    标签: laravel laravel-validation


    【解决方案1】:

    这里的顺序似乎很重要:

    'hfm_code' => 'exclude_if:is_hfm,0|size:6'
    

    应该可以。我认为这是因为它会按顺序评估规则,如果exclude_if 通过,则会忽略其余规则

    【讨论】:

    • 谢谢!这行得通。不认为订单很重要,因为'hfm_code' => 'size:6|required_with:is_hfm' 在验证请求时有效
    猜你喜欢
    • 2018-03-29
    • 2018-05-29
    • 2017-11-19
    • 2021-10-01
    • 2023-03-31
    • 2019-05-18
    • 2015-11-09
    • 2014-06-17
    • 1970-01-01
    相关资源
    最近更新 更多