我正在使用dateTimeComparealidator
,我有4个字段需要比较。
1。earlyOpenDate
(如果不是startDate
,则应小于null
2. earlyCloseDate
(如果不是earlyOpenDate
,则应大于null
3. startDate
(如果earlyOpenDate
不为空,则应大于earlyOpenDate
4. endDate
(应大于endDate
)
此startDate
和endDate
是强制性的,但其他2是可选的。
因此null
中earlyOpenDate
值为startDate
时,我的验证器无效。
当我选择startDate
中的任何值时,会引发earlyOpenDate
应大于endDate
的错误。
有没有办法在没有修改验证器类的情况下实现这一点。
此外,当我选择startDate
而未选择startDate
时,它会显示错误消息,但是当我选择endDate
之后选择yii2
消息时,它仍然存在,直到我重新选择约会。
它不会自动调用验证。
我正在使用this extension进行日期时间验证
我还尝试在.Id
中使用带有条件的'when'验证器,但它没有按预期工作。
答案 0 :(得分:0)
尝试重新执行skipOnEmpty
(应该是默认值,但扩展程序可以重新定义默认值)和/或如果相关skipOnError
:
[..., 'skipOnEmpty' => true, 'skipOnError' => ...],