db.Model(&user).Update("name", "hello")
db.Model(&user).Where("active = ?", true).Update("name", "hello")
db.Model(&user).Updates(User{Name: "hello", Age: 18})
db.Model(&user).Updates(User{Name: "", Age: 0, Actived: false})
这是 gorm 的官方文档例子,必须得传一个 user 结构体实例过去 所以我 database 包这样封装
package database
import "project/models"
func MachinesUpdate(m *models.Machines) error {
db.Model(&models.Machines{}).Where("SerialNumber = ?", m.SerialNumber).UpdateColumn(
....
因为 Machines 结构体是在 models 里封装,所以db.Model(&models.Machines{})
这个得在 database 里导入 models 包
然后 modesl 包里的 Machines 写 Add 方法
package models
import (
db "project/database"
)
type Machines struct{
...
}
func (m *Machines) Add() {
if err := db.MachinesAdd(m);err != nil {
log.Error(err)
}
}
那么这样就环了,编译报错 models 导入 database,database 导入 models 如何解决 有人说单独搞个包,我想了下,主要是
db.Model(&models.Machines{})
这句一定会导入 models,搞个单独包一导入这个 database 还是一样环: models -> 单独包 -> database -> models
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.