Yii2将验证器与空值进行比较

时间:2016-05-20 00:43:16

标签: php yii2 yii2-advanced-app yii2-basic-app

我正在使用dateTimeComparealidator,我有4个字段需要比较。

1。earlyOpenDate(如果不是startDate,则应小于null

2. earlyCloseDate(如果不是earlyOpenDate,则应大于null

3. startDate(如果earlyOpenDate不为空,则应大于earlyOpenDate

4. endDate(应大于endDate

startDateendDate是强制性的,但其他2是可选的。

因此nullearlyOpenDate值为startDate时,我的验证器无效。

当我选择startDate中的任何值时,会引发earlyOpenDate应大于endDate的错误。

有没有办法在没有修改验证器类的情况下实现这一点。

此外,当我选择startDate而未选择startDate时,它会显示错误消息,但是当我选择endDate之后选择yii2消息时,它仍然存在,直到我重新选择约会。

它不会自动调用验证。

我正在使用this extension进行日期时间验证

我还尝试在.Id中使用带有条件的'when'验证器,但它没有按预期工作。

1 个答案:

答案 0 :(得分:0)

尝试重新执行skipOnEmpty(应该是默认值,但扩展程序可以重新定义默认值)和/或如果相关skipOnError

[..., 'skipOnEmpty' => true, 'skipOnError' => ...],