猿问

Gorm 中的 many2many,真的

我正在尝试使用 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 []


神不在的星期二
浏览 136回答 1
1回答

汪汪一只猫

我认为你必须放弃 -Related部分。CreateTable据我所知,不需要它。if err := db.CreateTable(&Machine{}).Error; err != nil {    panic(err)}对我有用
随时随地看视频慕课网APP

相关分类

Go
我要回答