猿问

从 Golang Gorm 查询中获取选定的值

我想在使用 gorm 进行查询后获取用户数据


item := []models.User{}


if config.DB.First(&item, "email = ?", email).RecordNotFound() || len(item) == 0 {

    c.JSON(500, gin.H{

        "status":  "error",

        "message": "record not found"})

    c.Abort()

    return

}


c.JSON(200, gin.H{

    "status": "success",

    "data":   item,

})

这是我的模型


type User struct {

gorm.Model

Stores     []Store // to show that customer can have many stores

UserName   string

FullName   string

Email      string `gorm:"unique_index"`

Password   string

SocialID   string

Provider   string

Avatar     string

Role       bool `gorm:"default:0"`

HaveStore  bool `gorm:"default:0"`

isActivate bool `gorm:"default:0"`

}

我只想在从gorm查询后获取用户名,如何获取?我正在使用item.Username但是,错误表明item.UserName undefined (type []models.User has no field or method UserName)


素胚勾勒不出你
浏览 491回答 2
2回答

慕妹3146593

[]表示切片,这意味着item不是单个用户而是用户切片,切片没有字段,它们具有存储在其中的各个实例的元素,要访问这些元素,您可以使用索引表达式( s[i])。要么做item[0].UserName要么声明item为单个用户,而不是切片。即item := model.User{}你可以使用选择器表达式 item.UserName。

大话西游666

您正试图UserName从部分用户那里得到问题。如果电子邮件是唯一的字段数据库,那么您可以只使用用户模型而不是使用用户切片。item := models.User{}config.DB.First(&item, "email = ?", email)然后你可以像用户名一样访问item.UserName
随时随地看视频慕课网APP

相关分类

Go
我要回答