2016-05-20 113 views
0

我使用的是dateTimeComparealidator,我有4個字段進行比較。Yii2與NULL值比較驗證器

1。 earlyOpenDate(應該小於startDate,如果它不是null

2。 earlyCloseDate(應該大於earlyOpenDate,如果不是null

3。 startDate(應該大於earlyOpenDate,如果earlyOpenDate不爲空)

4。 endDate(應大於endDate

在此startDateendDate是強制性的,但其他2是可選的。

因此,我的驗證器不工作,當我有nullearlyOpenDate

當我在startDate中選擇任何值時,會拋出錯誤startDate應該大於earlyOpenDate

有沒有辦法不修改驗證器類來實現這一點。

而且還當我選擇endDate沒有選擇startDate它會顯示錯誤消息,但我還是選擇endDate的消息時,它有後選擇startDate直到我重新選擇的日期。

它不會自動調用驗證。

我使用this extension的日期時間驗證

我也嘗試過使用與狀況驗證「何時」在yii2但預計其不工作。

+0

你能告訴我們您的驗證規則嗎? –

回答

0

嘗試重新執行skipOnEmpty(應該是默認的,但擴展能夠重新定義默認)和/或如果涉及skipOnError

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