Yii验证;将验证器与OR逻辑相结合

时间:2013-06-20 16:03:58

标签: validation yii

如果数组中的一组验证器失败,则Yii内置验证将返回无效

e.g。

array( 
  array('A', 'required'),
  array('B', 'required')
)
如果A或B为空,

将返回无效。 (和逻辑)

我想组合这些验证器,这样只有当所有单独的验证器返回无效(OR逻辑)时它才会返回无效。 只有在A和B都为空的情况下,上面的示例才会返回无效。

是否有通用的内置方式来执行此操作?

如果不是,我希望扩展库以处理类似以下内容:

array(
  array('', 'COrValidator', 
    array('A', 'required'),
    array('B', 'required')
  )
)

1 个答案:

答案 0 :(得分:0)

您可能想要创建一个AnyValidValidator,以便您可以执行以下操作:

array(
   array('attribute1, attibute2', 'anyValid', array('required')),
);

的问题
array(
  array('', 'COrValidator', 
    array('A', 'required'),
    array('B', 'required')
  )
)

是,如果没有对验证器功能进行重大修改,COrValidator验证器将不会应用于任何属性(未指定任何属性)。