Gorm 中的 many2many,真的
many2many in Gorm, really
我正在尝试在 gorm 中使用多对多关系。但是,该示例是部分片段,我尝试创建类似示例片段的尝试失败了。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/mattn/go-sqlite3"
)
type Part struct {
gorm.Model
Name string
}
type Machine struct {
gorm.Model
Name string
Subtasks []Part `gorm:"many2many:parts;"`
}
func main() {
// Connect to the database
db, err := gorm.Open("sqlite3", "example.db")
if err != nil {
panic(err)
}
defer db.Close()
db.LogMode(true)
// Set up associations
if err := db.CreateTable(&Part{}).Error; err != nil {
panic(err)
}
if err := db.CreateTable(&Machine{}).Related(&[]Part{}).Error; err != nil {
panic(err)
}
}
最后一次调用 CreateTable 时出现恐慌:panic: invalid association []
我认为您必须删除 Related
部分。 CreateTable
据我所知不需要它。
if err := db.CreateTable(&Machine{}).Error; err != nil {
panic(err)
}
适合我
我正在尝试在 gorm 中使用多对多关系。但是,该示例是部分片段,我尝试创建类似示例片段的尝试失败了。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/mattn/go-sqlite3"
)
type Part struct {
gorm.Model
Name string
}
type Machine struct {
gorm.Model
Name string
Subtasks []Part `gorm:"many2many:parts;"`
}
func main() {
// Connect to the database
db, err := gorm.Open("sqlite3", "example.db")
if err != nil {
panic(err)
}
defer db.Close()
db.LogMode(true)
// Set up associations
if err := db.CreateTable(&Part{}).Error; err != nil {
panic(err)
}
if err := db.CreateTable(&Machine{}).Related(&[]Part{}).Error; err != nil {
panic(err)
}
}
最后一次调用 CreateTable 时出现恐慌:panic: invalid association []
我认为您必须删除 Related
部分。 CreateTable
据我所知不需要它。
if err := db.CreateTable(&Machine{}).Error; err != nil {
panic(err)
}
适合我