Grails - 从自定义验证器闭包调用内置约束

时间:2014-11-28 16:05:57

标签: grails grails-domain-class grails-validation

我希望能够根据域类的其他字段将约束实现为可选。

这样,如果importMode为真,则不再需要公司字段,但如果导入模式为false,则调用company (blank:false)提供的默认功能。

class MyClass {
    boolean importMode
    String company

    static constraints = {
        company(validator: { val, obj ->
            if(obj.importMode) {
                // return default blank:false functionality
            }
            return true // else pass
        }
    }
}

Grails是否可以从这样的自定义约束闭包中调用内置约束?

1 个答案:

答案 0 :(得分:0)

您必须定义自定义约束,而不是使用默认的可空或空白约束

class MyClass {
    boolean importMode
    String company

    static constraints = {
        company(validator: { val, obj ->
            if(!obj.importMode && !val) {
              return['myClass.company.required']
            }
        })
    }
}