gpt4 book ai didi

grails - 如何限制通过参数设置的域的属性

转载 作者:行者123 更新时间:2023-12-02 15:10:37 25 4
gpt4 key购买 nike

我的域类中有几个属性。但是,我只希望通过params对象设置其中的几个。什么是这样做的好方法?

例:


class Color {
String name
String shade //don't want this set by params
}

控制者
class ColorController { 
def save() {
json {
def c = new Color(params?.color)
c.save(flush: true)
//..more code
}
}
}

如果有人发送如下请求:
  {"color": 
{name: "red",
shade: "light"
}
}

然后用户可以更改 shade属性。我该如何阻止呢?

最佳答案

您可能会做两件事之一:

  • 如果有很多属性,请在您的域类中创建transient beforeInsert() {}和/或transient beforeUpdate() {}方法,并处理(或不设置)这些属性。
  • 如果只有少数几个,则覆盖域类中的 setter 。

  • 由于Groovy除非绝对必要,否则我不希望弄乱getter和setter,所以我通常使用 beforeInsertbeforeUpdate方法。

    关于grails - 如何限制通过参数设置的域的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16968829/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com