如果向 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