依赖于其他属性的 Grails 验证

Posted

技术标签:

【中文标题】依赖于其他属性的 Grails 验证【英文标题】:Grails validation dependent on other attributes 【发布时间】:2011-08-20 11:49:10 【问题描述】:

用 grails 做这样的事情的正确方法是什么:

class myDomainThing 
  String description
  MyOtherDomainThing otherThing

  static constraints = 
    description(nullable:if(otherThing))
    otherThing(nullable:if(description))
  

所以我要么想要一个指向 otherDomainThing 的链接,要么想要一个字符串描述。

【问题讨论】:

【参考方案1】:

您必须使用 Grails 自定义验证,使用 validator

static constraints = 
  description(validator: 
        return otherThing and !description
    )

【讨论】:

【参考方案2】:

您需要使用自定义验证器

static constraints = 
  description validator:  val, obj -> 
     if(otherthing && val) 
         false
     
     else 
       true
     
  

显然otherthing 周围有一些伪代码

【讨论】:

以上是关于依赖于其他属性的 Grails 验证的主要内容,如果未能解决你的问题,请参考以下文章

等价于 mvn 依赖:Grails 中的树

Grails 2.2.4:瞬态属性:为啥自定义验证器被调用两次?

来自另一个域类的属性的 Grails 自定义验证器

是否可以在 Grails 之外使用 Grails 验证?如何?

如何在引导程序中获取 grails 数据源 createdb 属性

Grails:如何从控制器逻辑返回错误消息(即不是源自域属性验证)?