账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    xorm 字段隐藏的问题
    92
    0
    type User struct{
        Id         int     `json:"id" xorm:"not null pk autoincr INT(11)"`
        Name       string  `json:"name"`
        Password   string  `json:"-"`
    }

    提交json数据:

    [
        {
            "name":"aaa",
            "password":"123456"
        },{
            "name":"bbb",
            "password":"123456"
        },
    ]
    var Users []models.User
    _ = Ctx.ReadJSON(&Users)
    for _,user:=range Users{
        fmt.Println(user.Password)//这里打印出来的password是空的
    }

    使用json:"-"把Password字段隐藏起来的话,user.Password为“”。
    有什么简便办法既可以隐藏password字段,也可以在插入数据时也能读到passwrod字段

    1
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 共 0 条
    • 话东方 普通会员 1楼

      在使用 xorm 框架时,字段隐藏可能会影响到数据的查看和操作。这可能是因为某些字段在数据库中是公开的,而在 xorm 中被隐藏。

      如果你想让一个字段在数据库中被隐藏,你需要在模型中使用 isPublic() 方法来标记该字段为隐藏。以下是一个例子:

      ``go type User struct { id int64xorm:"primary"username stringxorm:"unique"password stringxorm:"password"isPublic boolxorm:"default false"` }

      func main() { var user User db.Create(&user) } ```

      在这个例子中,我们创建了一个名为 User 的结构体,其中包含了四个字段:id(主键)、username(唯一标识符)、password(密码)和 isPublic(默认值为 false,表示该字段不是公开的)。

      当我们使用 db.Create(&user) 运行这个查询时,数据库会自动地将 isPublic 设置为 false,从而隐藏了该字段。

      如果你想在运行时改变一个字段的隐藏状态,你可以使用 db.Set 方法来设置。例如:

      go db.Set(&user, "isPublic", true)

      这将将 isPublic 设置为 true,使得该字段成为公开的。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部