簡體   English   中英

Grails min約束日期驗證

[英]Grails min constraint for date validation

我是grails和groovy的新手。 我有一個具有開始和結束日期的Project域類。 我想提出一個約束,指定結束日期需要大於開始日期(然后項目的另一個子對象需要讓其startdate和enddate與父項目的日期一起驗證)。 這可能是最小約束還是我必須把它放在其他地方? 唯一約束允許以這種方式鏈接兩個屬性,希望min / max約束允許這樣做。 我試過了

startDate(blank:false)
endDate(blank:false, min:'startDate')

它會拋出一個錯誤,指出屬性startDate在Project上不可用

嘗試使用自定義驗證器:

static constraints = {
    endDate(validator: { val, obj ->
        val?.after(obj.startDate)
    })
}

val是字段的值, obj是對要驗證的對象的引用。 閉包可以包含您需要的任何邏輯,因此您可以按照您在問題中描述的方式擴展驗證(通過訪問您使用obj引用的子對象)。

自定義驗證器非常靈活。 看看文檔 理想情況下,您需要返回自定義消息; 如何做到這一點也可以在上面鏈接的文檔中找到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM