我是 golang 的新手,正在尝试使用 gin + gorm 制作 API 服务器。
我尝试构建下面的代码,但type *gorm.DB has no field or method GetUsers
出现错误。
这是一个非常简单的 API 服务器,我只想从users
表中获取所有用户。
package models
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/postgres"
)
var db *gorm.DB
func init() {
var err error
db, err = gorm.Open("postgres", "host=localhost dbname=test user=postgres password=test sslmode=disable")
if err != nil {
return err
}
}
type User struct {
ID int `json:"id"`
Username string `json:"name"`
}
func NewUser(id int, name string) User {
return User{
ID: id,
Username: name,
}
}
// UserRepository
type UserRepository struct {
}
func NewUserRepository() UserRepository {
return UserRepository{}
}
func (m UserRepository) GetUsers() []*User {
var users []*User
has, _ := db.GetUsers(&users)
if has {
return users
}
return nil
}
我实现GetUsers()
了controllers/user.go
,我还创建了users
表。
我不知道为什么会这样说no field or method GetUsers
。有人给我一个解决这个问题的建议。
package controllers
import (
"api-server/models"
)
type User struct {
}
func NewUser() User {
return User{}
}
func (c User) GetUsers() interface{} {
repo := models.NewUserRepository()
user := repo.GetUsers()
return user
}