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