Struct 应为指向结构片的指针
我在golang的服务器上工作 我有一个身份验证助手,它使用安全令牌对用户进行身份验证(这是一个测试)。当我在AuthUsingCredentials函数中进行查询(我正在使用)时,会出现错误,它会输出以下错误: “预期指向结构片*[]结构的指针” 如果我为Struct 应为指向结构片的指针,struct,types,go,Struct,Types,Go,我在golang的服务器上工作 我有一个身份验证助手,它使用安全令牌对用户进行身份验证(这是一个测试)。当我在AuthUsingCredentials函数中进行查询(我正在使用)时,会出现错误,它会输出以下错误: “预期指向结构片*[]结构的指针” 如果我为var result[]entities.User更改var result*entities.User的 无法将结果[0](类型entities.User)用作中的类型*entities.User ah.userEntityToModel的参
var result[]entities.User
更改var result*entities.User
的
无法将结果[0](类型entities.User)用作中的类型*entities.User
ah.userEntityToModel的参数“
身份验证帮助程序代码:
auth.go
package helpers
import (
"fmt"
"server/data/entities"
"server/data/models"
"server/interfaces"
)
var AuthHelper *authHelper
type authHelper struct{}
func init() {
AuthHelper = &authHelper{}
}
func (ah *authHelper) userEntityToModel(_entity *entities.User) (*models.User, error) {
u := models.NewUser(_entity, db)
u.Username = _entity.Username
return u, nil
}
func (ah *authHelper) AuthenticateUsingCredentials(_token string) (interfaces.IUser, error) {
var result *entities.User
err := db.Where("Token", "=", _token).Find(result)
if err != nil {
return nil, err
}
if result == nil {
return nil, fmt.Errorf("Player '%s' not found", _token)
}
playerModel, err := ah.userEntityToModel(result)
if err != nil {
return nil, err
}
return playerModel, nil
}
这样的办法应该行得通
func (ah *authHelper) AuthenticateUsingCredentials(_token string) (interfaces.IUser, error) {
var result *[]entities.User
err := db.Where("Token", "=", _token).Find(result)
if err != nil {
return nil, err
}
if len(result) <= 0 {
return nil, fmt.Errorf("Player '%s' not found", _token)
}
playerModel, err := ah.userEntityToModel(&(*result)[0])
if err != nil {
return nil, err
}
return playerModel, nil
}
func(ah*authHelper)AuthenticateSingCredentials(_令牌字符串)(interfaces.IUser,错误){
var结果*[]entities.User
错误:=db.Where(“令牌”、“=”、\u令牌)。查找(结果)
如果错误!=零{
返回零,错误
}
if len(result)感谢您的回答。它仍然输出“预期的指向结构片的指针*[]struct”。完整源代码的存储库:@IegorAzuaga:ah,我读错了。我更新了指向结构片指针的答案。