我需要尊重验证表单数据。这些字段中的至少一个必须具有值:$vfname
和$vlname
。经过一些试验和错误,我发现我可以连接和测试notEmpty()
:
v::StringType()->notEmpty()->assert($vfname . $vlname)
但这似乎真的很hacky。有没有更好的方法来验证,以便这些字段中的至少一个具有值?
我需要尊重验证表单数据。这些字段中的至少一个必须具有值:$vfname
和$vlname
。经过一些试验和错误,我发现我可以连接和测试notEmpty()
:
v::StringType()->notEmpty()->assert($vfname . $vlname)
但这似乎真的很hacky。有没有更好的方法来验证,以便这些字段中的至少一个具有值?
验证支持OR
使用OneOf
规则的操作。此外,如果您正在验证表单数据,该Key
规则将很方便:
v::oneOf(
v::key('vfname', v::stringType()->notEmpty()),
v::key('vlname', v::stringType()->notEmpty())
)
->assert(['vfname' => $vfname, 'vlname' => $vlname]);
那为什么不这样呢?
v::boolType()->validate(!empty($vfname) || !empty($vlname));
注意:使用的一个优点empty()
是它不会引起任何Undefined variable
通知,如果这是你的事。