问题描述
我想在 Go 中使用 Gin 框架将“启用”列更新为 false。我知道默认情况下不允许将该列设置为 false,因此我编写了以下代码来处理该问题。
if err := db.Model(&subscription).Update(map[string]interface{}{"enabled": false}).Error; err != nil {//do something}
不知何故,这似乎不再起作用了。这段代码有什么问题?
这是我的模型:
type Subscription struct {
gorm.Model
Enabled bool `gorm:"DEFAULT:True"`
Deleted bool `gorm:"DEFAULT:False"`
UserID uint `gorm:"not null"`
SubscriptionTypeID uint `gorm:"not null"`
Cap int `gorm:"DEFAULT:-1"`
DateOfMonth string `gorm:"DEFAULT:'0'"`
}
解决方法
您可以使用 Updates
方法按照您尝试过的方式进行操作。这也适用于多列。
if err := db.Model(&subscription).Updates(map[string]interface{}{"enabled": false}).Error; err != nil {//do something}
此外,您可以使用 Update
方法更新单列。
if err := db.Model(&subscription).Update("enabled",false).Error; err != nil {//do something}
Here 您可以找到有关如何更新单列或多列的更多变体。
,Ankita Gupta,你应该像这样声明你的模型:
<div id="test">
<span class="one"></span>
<span class="two">two</span>
<span class="three"></span>
<span class="four"></span>
</div>
这样布尔默认值为false