go - 方法保存在gorm中
问题描述
我的代码看起来像这样,如果我想保存用户,我写这个
admin := models.Admin{
Fullname: body.Fullname,
Email: body.Email,
PasswordHashed: hashedPassword,
}
db.DB().Save(&admin)
我不想在我的句柄中调用 db,我只想使用 likeadmin.Save()
并且我编写了这样的代码
type Admin struct {
ID uint64 `json:"id" gorm:"primary_key;unique;AUTO_INCREMENT"`
Fullname string `json:"fullname" gorm:"type:varchar(50)"`
Email string `json:"email" gorm:"type:varchar(100);unique_index"`
PasswordHashed string `json:"password_hashed" gorm:"type:varchar(60)"`
CreatedAt time.Time `json:"created_at" gorm:"column:created_at"`
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at"`
}
func (a *Admin) Save(){
db.DB().Save(&a)
}
但是当我尝试构建代码时,它显示错误:不允许导入周期。我读过一些说,如果我已经在包A中导入包B,我不能在B中导入包A。我应该如何解决这个问题?还是我应该只保留我的第一个代码?这是我的文件夹结构
我的目录树
├── controllers
│ ├── auth.go
│ └── auth_test.go
├── db
│ └── db.go
├── go.mod
├── go.sum
├── gournal
├── helpers
│ ├── bcrypt.go
│ └── jwt.go
├── main.go
├── makefile
├── middlewares
│ └── auth.go
├── models
│ ├── admin.go
│ ├── journal.go
│ └── methods.go
├── README.md
├── routers
│ ├── auth.go
│ └── router.go
└── test
解决方案
推荐阅读
- mysql - INSERT INTO... 具有不存在值的值
- c++ - 同一个程序中是否可以有两个升压受体?
- c++ - 为什么在 C++17 中使用 std::make_unique?
- node.js - Angular 保护循环和 nodejs 发送后无法设置标头
- wix - 如何从 wix 项目中获取源路径/目标路径对的列表
- java - 使用spring kafka将文件作为byteArray发送到kafka
- nginx - 如何将此 Apache 代码转换为在 NGINX 中工作?
- android - react run android显示“babel:config:config-chain”错误并且不运行应用程序
- php - 消息:不能在 CodeIgnitor 中使用 stdClass 类型的对象作为数组
- google-analytics - 您可以通过报告 API 获得“会话质量”吗?