Yii2 сравнивает валидатор с нулевым значением

Я использую 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, но он не работает должным образом.


person Mike Ross    schedule 20.05.2016    source источник
comment
Можете ли вы показать нам свои правила проверки, пожалуйста?   -  person Xiaosong Guo    schedule 23.05.2016


Ответы (1)


Попробуйте повторно применить skipOnEmpty (должно быть по умолчанию, но расширение может переопределить значение по умолчанию) и/или, если это связано с skipOnError:

[..., 'skipOnEmpty' => true, 'skipOnError' => ...],
person scaisEdge    schedule 20.05.2016