我的主要问题是如何将记录器注入到附加到模型的函数中?例如,如果我们有一个用户模型type User struct { id string `json:"id" bson:"id"` name string `json:"name" bson:"name"`}然后让我们有一个函数附加到它func (user *User) Save() { ...}现在我想做的是创建一个结构,其中包含记录器和其他附加信息type UserStruct struct { logger ... dbConn ... ...}现在我的问题是,如果我将其注入控制器,那么他们将可以访问他们不需要的对象。我找不到一种很好的方法将这些与控制器隔离开来,而只将模型上的函数注入控制器。
1 回答

MYYA
TA贡献1868条经验 获得超4个赞
我建议不要在 Go 中实现活动记录模式,而是使用持久性层来接收所有这些数据对象,例如 。例如:User
type Persistence struct {
logger logging.Logger
conn *mongo.Client
// ...
}
func NewPersistence(...) (*Persistence, error) {
// connect to mongo etc
return &Persistence{...}, nil
}
func (p *Persistence) SaveUser(user *User) error {
// ...
}
func (p *Persistence) FindUserByName(username string) (*User, error) {
// ...
}
- 1 回答
- 0 关注
- 60 浏览
添加回答
举报
0/150
提交
取消