【发布时间】:2021-09-09 15:24:58
【问题描述】:
我有三个表users、todos 和user_todos:
type User struct {
ID uint64
Email string
Todos []Todo `gorm:"many2many:user_todos"`
}
type Todo struct {
ID uint64
Title string
}
type UserTodos struct {
UserID uint64
TodoID uint64
Done bool
}
现在我想让所有用户拥有所有待办事项。 db.Preload("Todos").Find(&users) 做到了这一点。
但是,如果我想获取所有待办事项并查看它们是否已经由用户完成呢?
我尝试创建一个 SQL 视图 checked_todos,它连接 user_todos 表,并将 User 结构中的 Todos 属性与 CheckedTodo 交换,该 CheckedTodo 只是用布尔字段扩展 Todo。预加载永远不会访问正确的表。
在 GORM 文档中找不到任何提示如何访问联结表中的列。
【问题讨论】:
-
您是否尝试过使用 Gorm join?
标签: go many-to-many go-gorm