2016-05-20 17 views
0

Ich verwende eine dateTimeComparealidator und ich habe 4 Felder zu vergleichen.Yii2 Validierer mit Nullwert vergleichen

1. earlyOpenDate (sollte weniger als startDate sein, wenn es nicht null ist)

2. earlyCloseDate (sollte größer als earlyOpenDate sein, wenn es nicht null ist)

3. startDate (sollte größer als earlyOpenDate sein, wenn earlyOpenDate nicht null ist)

4. endDate (sollte größer als endDate)

dieses In startDate und endDate obligatorisch sind aber auch andere 2 sind optional.

So funktioniert mein Validator nicht, wenn ich null Wert in earlyOpenDate habe.

Wenn ich einen Wert in startDate wähle, wird der Fehler ausgegeben, dass startDate größer als earlyOpenDate sein sollte.

Gibt es eine Möglichkeit, ohne die Validator-Klasse zu ändern, um dies zu erreichen.

Und auch, wenn ich die endDate auswählen, ohne startDate Auswahl zeigt es Fehlermeldung, aber wenn ich die startDate wählen nach endDate die Nachricht, die er immer noch dort die Auswahl, bis ich das Datum erneut auswählen.

Die Validierung wird nicht automatisch aufgerufen.

Ich bin mit this extension für Datetime-Validierung

Ich habe auch versucht zu verwenden ‚wenn‘ mit der Bedingung in yii2 Validator aber es ist nicht wie erwartet funktioniert.

+0

Können Sie uns zeigen Sie Ihre bitte Prüfregeln? –

Antwort

0

Versuchen Wieder Durchsetzung skipOnEmpty (sollte der Standard sein, aber die Erweiterung könnte die Standard neu definieren) und/oder wenn skipOnError bezogen werden:

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