首页 > 解决方案 > 方法保存在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

标签: gogo-gormgo-gin

解决方案


推荐阅读