Grails-min-Einschränkung für die Datumsvalidierung

8

Ich bin ein Neuling in Grails und Groovy. Ich habe eine Projekt-Domain-Klasse mit Start- und Enddatum. Ich möchte eine Einschränkung einfügen, die angibt, dass das Enddatum größer als das Startdatum sein muss (und dann muss ein anderes untergeordnetes Objekt des Projekts sein Startdatum und sein Enddatum mit den Daten des übergeordneten Projekts validieren). Ist das mit der minimalen Einschränkung möglich oder muss ich es woanders hinstellen? Eindeutige Einschränkung erlaubt es, zwei Eigenschaften auf diese Weise zu verknüpfen, in der Hoffnung, dass Min / Max-Bedingungen dies zulassen. Ich habe es versucht

%Vor%

Es wird ein Fehler ausgegeben, der besagt, dass die Eigenschaft startDate nicht auf Project

verfügbar ist     
Ravindra Sane 02.11.2010, 18:58
quelle

1 Antwort

13

Verwenden Sie einen benutzerdefinierten Validator:

%Vor%

val ist der Wert des Feldes und obj ist eine Referenz auf das zu validierende Objekt. Die Schließung kann die von Ihnen benötigte Logik enthalten, sodass Sie Ihre Validierung auf die Weise erweitern können, die Sie in Ihrer Frage beschreiben (indem Sie auf die untergeordneten Objekte zugreifen, auf die Sie mit obj verweisen).

Der benutzerdefinierte Validator ist ziemlich flexibel. Sehen Sie sich die Dokumentation an. Im Idealfall möchten Sie eine benutzerdefinierte Nachricht zurückgeben. Wie man das macht, kann man auch in den oben verlinkten Dokumenten finden.

    
Rob Hruska 02.11.2010, 19:03
quelle