美文网首页
Gorm 无法 提交 / 查询 0 值的解决办法

Gorm 无法 提交 / 查询 0 值的解决办法

作者: IllIIlIlIII | 来源:发表于2021-02-17 22:16 被阅读0次

    如果向 gorm 提交 / 查询 变量类型的默认 0 值时,会被认为无提交值 / 查询为空,从而导致无法更新 / 查询无结果。
    解决方案是在 gorm 结构体声明中使用指针。
    下面以 bool 值为例。

    type Blog struct {
      Title string
      Published bool
    }
    

    golang 的布尔类型变量默认空值是 false,即认为无提交值,所以上面的要提交 Blog 的 Published 值为 false 是提交不成功的。

    解决方案是将 Pubilshed 类型改为指针类型:

    type Blog struct {
      Title string
      Published *bool
    }
    

    这样就能正常提交了

    当需要给 Published 赋值时,可以:

    var blog Blog
    blog.Published = new(bool)
    *blog.published = true
    

    或者:

    func BoolPtr(b bool) *bool {
       return &b
    }
    blog.Published = BoolPtr(false)
    

    相关文章

      网友评论

          本文标题:Gorm 无法 提交 / 查询 0 值的解决办法

          本文链接:https://www.haomeiwen.com/subject/fxmwxltx.html