第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我正在嘗試通過電子郵件查找記錄

我正在嘗試通過電子郵件查找記錄

Go
拉丁的傳說 2022-01-04 10:41:17
我有以下代碼。處理程序func (authHandler *AuthHandler) Login(c *gin.Context) {    var user models.User    c.Bind(&user)    if &user == nil {        c.BindJSON(&user)    }    userObject, err := authHandler.userRepo.FindBy(        models.User{            Email: user.Email,        },    )    if err != nil {        c.JSON(401, gin.H{"_message": "User not found."})        return    }    passErr := bcrypt.CompareHashAndPassword([]byte(userObject.Password), []byte(user.Password))    if passErr != nil {        c.JSON(401, gin.H{"_message": "Password incorrect."})        return    }    token, err := services.CreateToken(userObject)    if err != nil {        c.JSON(401, gin.H{"_message": "Password incorrect."})        return    }    c.JSON(200, gin.H{"token": token, "user": gin.H{        "id":         &userObject.ID,        "first_name": &userObject.FirstName,        "last_name":  &userObject.LastName,        "email":      &userObject.Email,        "avatar":     &userObject.Avatar,        "location":   &userObject.Location,        "bg_img":     &userObject.BgImg,    }})}模型// user.gotype User struct {    ID        string `gorm:"primary_key:true"`    FirstName string `form:"first_name" json:"first_name,omitempty"`    LastName  string `form:"last_name" json:"last_name,omitempty"`    Password  string `form:"password" json:"password" bindind:"required"`    Email     string `gorm:"type:varchar(110);unique_index" form:"email" json:"email,omitempty" binding:"required"`    Location  string `form:"location" json:"location,omitempty"`    Avatar    string `form:"avatar" json:"avatar,omitempty"`    BgImg     string `form:"bg_img" json:"bg_img,omitempty"`    CreatedAt time.Time    UpdatedAt time.Time    DeletedAt time.Time}我試過以幾種不同的方式進(jìn)行查找,但沒有運(yùn)氣。我每次都收到 401 響應(yīng),模型中的 fmt.Prinlnt(err) 顯示record not found錯誤。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個贊

所以事實(shí)證明我需要將該DeletedAt字段設(shè)置為空值。在幕后,GORM 會自動檢查一個DeletedAt值。即SELECT * FROM users WHERE email = 'someone@gmail.com' AND deleted_at IS NULL。但是,我的DeletedAt字段被自動設(shè)置為空白日期,從技術(shù)上講,這不是NULL.


我添加了一個結(jié)構(gòu)...


type NullTime struct {

  time.Time

  Valid bool

}

然后更新了我的模型...


type User struct {

    ID        string `gorm:"primary_key:true"`

    FirstName string `form:"first_name" json:"first_name,omitempty"`

    LastName  string `form:"last_name" json:"last_name,omitempty"`

    Password  string `form:"password" json:"password" bindind:"required"`

    Email     string `gorm:"type:varchar(110);unique_index" form:"email" json:"email,omitempty" binding:"required"`

    Location  string `form:"location" json:"location,omitempty"`

    Avatar    string `form:"avatar" json:"avatar,omitempty"`

    BgImg     string `form:"bg_img" json:"bg_img,omitempty"`

    CreatedAt time.Time

    UpdatedAt time.Time

    DeletedAt NullTime

}


查看完整回答
反對 回復(fù) 2022-01-04
?
MMMHUHU

TA貢獻(xiàn)1834條經(jīng)驗(yàn) 獲得超8個贊

'gorm' 中的約定是在您的結(jié)構(gòu)中包含基本模型。


// Base Model definition from gomodel.go

type Model struct {

  ID        uint `gorm:"primary_key"`

  CreatedAt time.Time

  UpdatedAt time.Time

  DeletedAt *time.Time

}


// Your struct

type User struct {

  gorm.Model

  Name string

}

如您所見,'gorm' 需要一個指針來處理 NULL 值。


查看完整回答
反對 回復(fù) 2022-01-04
  • 2 回答
  • 0 關(guān)注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號