尝试验证和保存域对象时遇到问题。
首先,我要进行验证,当验证错误时,我会将错误放入我要保存的对象中,如下所示:
myDomain.errors.reject("An Error")
myDomain.discard()
然后,当我尝试保存该对象时,我可以看到错误列表有一个错误,但是'validate()'返回'true',而且,函数完成后,该对象也将自动保存。
我必须说,所有调用的函数都在同一类中,该类是 Controller 。
我需要知道如何对我的保存函数(在 Controller 类中)进行编码,该函数仅显示错误而不保存对象,并且在验证良好时保存对象。
谢谢!
最佳答案
myDomain.validate()
将覆盖myDomain.errors
清除reject()
。您可以执行以下操作:
// bind etc.
...
// do grails validation
if (!myDomain.validate()) {
myDomain.discard()
}
// do custom validation
if (custom validation has errors) {
myDomain.errors.reject ()
myDomain.discard()
}
如果可以将自定义验证移到myDomain上的validator中,则不需要自定义验证。
您不需要显式调用save()。
关于validation - Grails:尽管有错误,对象仍被保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24852659/