grails - Grails-从自定义验证程序闭包中调用内置约束

标签 grails grails-domain-class grails-validation

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

这样,如果importMode为true,则不再需要company字段,但是如果import mode为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中,是否可以从这样的自定义约束闭包中调用内置约束?

最佳答案

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

class MyClass {
    boolean importMode
    String company

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

关于grails - Grails-从自定义验证程序闭包中调用内置约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192382/

相关文章:

postgresql - 使用 isdirty() 自动递增不是主键的字段

html - Grails 表格,嵌套 map

grails - Grails项目结构会随着Gradle改变吗?

Grails 域类 : unique constraint for multiple columns

grails - 参数化 Grails 验证消息

angularjs - $ http.post返回422,带有angular和grails

grails - 域类之间未定义所有者

grails - Grails域对象未在gsp中刷新

grails - 进行一对多动态表单提交

validation - 在 Grails 中验证 ip 地址