私は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
}