如果前端传来的status是0,那么方法一不能修改数据库中status的值(非0值可以),使用方法二可以正常修改数据库中status的值,为什么?困扰我好久了
<input {{ if eq .access.Status 1 }} checked {{ end }} type="radio" name="status" value="1" id="a" /> <label for="a">显示</label>
<input {{ if eq .access.Status 0 }} checked {{ end }} type="radio" name="status" value="0"id="b" /> <label for="b">隐藏</label>
CREATE TABLE `access` (
`id` int NOT NULL AUTO_INCREMENT,
`module_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '0',
`type` tinyint(1) DEFAULT NULL,
`action_name` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`url` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`module_id` int DEFAULT NULL,
`sort` int DEFAULT NULL,
`description` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL,
`status` int DEFAULT NULL,
`add_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
);
```go
方法一:
access := model.Access{}
access.ModuleName = moduleName
access.Type = accessType
access.ActionName = actionName
access.Url = url
access.ModuleId = moduleId
access.Sort = sort
access.Description = description
access.Status = status
access.AddTime = time.Now()
fmt.Println("修改后的状态是:", access.Status)
// 修改数据库
err := dao.Mdb.Where("id = ?", id).Updates(&access).Error
方法二:
access := model.Access{}
dao.Mdb.Find(&access, id)
access.ModuleName = moduleName
access.Type = accessType
access.ActionName = actionName
access.Url = url
access.ModuleId = moduleId
access.Sort = sort
access.Description = description
access.Status = status
access.AddTime = time.Now()
fmt.Println("修改后的状态是:", access.Status)
// 修改数据库
err := dao.Mdb.Save(&access).Error