【问题标题】:Respect Validation for two fields尊重两个领域的验证
【发布时间】:2018-01-18 16:26:17
【问题描述】:

我需要通过 Respect 验证表单数据。这些字段中的至少一个必须具有值:$vfname$vlname。经过一番反复试验,我发现我可以用notEmpty()进行连接和测试:

v::StringType()->notEmpty()->assert($vfname . $vlname)

但这似乎真的很hacky。是否有更好的验证方法,以使这些字段中的至少一个具有值?

【问题讨论】:

    标签: php validation respect-validation


    【解决方案1】:

    验证支持使用OneOf 规则的OR 操作。此外,如果您正在验证表单数据,Key 规则会很方便:

    v::oneOf(
        v::key('vfname', v::stringType()->notEmpty()),
        v::key('vlname', v::stringType()->notEmpty())
    )
    ->assert(['vfname' => $vfname, 'vlname' => $vlname]);
    

    【讨论】:

      【解决方案2】:

      那为什么不这样呢?

      v::boolType()->validate(!empty($vfname) || !empty($vlname));
      

      注意:使用empty() 的一个优点是它不会引发任何Undefined variable 通知,如果这是你的事。

      【讨论】:

        猜你喜欢
        • 2021-11-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多