有人能告诉我如何在Grails控制器中声明inList
约束吗?
假设我有这门课程:
class A {
List hello
}
如何从控制器中为inList
hello
添加List
约束?
答案 0 :(得分:2)
定义一个约束,其中List
属性具有针对列表列表验证的值?听起来怪怪的。但你可以做到。有了这堂课:
class A {
List hello
static constraint = {
hello inList:[['abc','def','ghi'],[1,2,3],['a','b']]
}
}
您可以在控制器中执行此操作:
def instance1 = new A(hello:['abc','def','ghi']).save() //valid
def instance2 = new A(hello:[1,2,3]).save() //valid
def instance3 = new A(hello:['a','b']).save() //valid
def instance4 = new A(hello:['a','b','c']).save() //invalid
def instance5 = new A(hello:[1,2]).save() //invalid
如果A
是其实例在传统数据库中保留的域类,则hello
属性将被删除,因此您需要使用
static hasMany = [hello: SomeClass]
代替。
答案 1 :(得分:0)
您可以在字段中编写自定义验证程序,以检查数据是否在List中。您必须手动执行列表检查。 您可以找到here官方文档。有一些stackoverflow条目可以帮助您喜欢
Grails: Custom validator based on a previous value of the field