【问题标题】:Change Validations in beforeInsert and beforeUpdate在 beforeInsert 和 beforeUpdate 中更改验证
【发布时间】:2012-06-19 08:58:34
【问题描述】:

我有一个域类

class Store{
    String name
    Store hierarchy
    Date dateCreated
    Date lastUpdated
    static hasMany=[storeRestrictions:StoreRestrictions]
    boolean isBillable
    boolean isConsignment
    boolean isMassUploadPossible

    static constraints = {
        name(nullable:false,blank:false,maxSize:50,unique:true)
        hierarchy(nullable:true,blank:true)
        dateCreated()
        lastUpdated()
        isBillable()
        isMassUploadPossible()
        storeRestrictions(nullable:false)
    }
}

有什么方法可以更改beforeInsertbeforeUpdate 中的验证,例如,如果isConsignment 为真,那么storeRestrictions 可以变为nullable:true

【问题讨论】:

  • 不——你应该可以使用自定义验证器约束

标签: grails groovy


【解决方案1】:

我认为custom validators 适合您的需求。您可以使用检查 isConsignment 值的自定义验证器替换 storeRestrictions 上的 nullable:true 约束

【讨论】:

    【解决方案2】:

    改为这样做:

    static constraints = {
        ...
        storeRestrictions(validator: {field, inst -> 
                                        if( false == isConsignment) 
                                            return null != inst.storeRestrictions
                         )
    }
    

    阅读更多Grails Validator

    【讨论】:

      猜你喜欢
      • 2012-03-06
      • 2022-08-05
      • 1970-01-01
      • 2018-08-06
      • 2015-03-13
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多