亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

validator v8升到v9之后代碼變成這樣,綁定和驗證分離了, 不知道寫成這樣行不行,但是運行還是沒問題的

package?main

import?(
???"github.com/gin-gonic/gin"
???"gopkg.in/go-playground/validator.v9"
???"net/http"
???"time"
)

type?Booking?struct?{
???CheckIn?time.Time?`form:"check_in"?validate:"required,bookableDate"?time_format:"2006-01-02"`
???CheckOut?time.Time?`form:"check_out"?validate:"required,gtfield=CheckIn"?time_format:"2006-01-02"`
}


func?main(){

???r?:=?gin.Default()

???validate?:=?validator.New()
???validate.RegisterValidation("bookableDate",?bookableDate)
???r.GET("/bookable",?func(c?*gin.Context)?{
??????var?book?Booking
??????if?err?:=?c.ShouldBind(&book);?err?!=?nil?{
?????????c.JSON(http.StatusInternalServerError,?gin.H{
????????????"error":?err.Error(),
?????????})
?????????c.Abort()
?????????return
??????}
??????if?err?:=?validate.Struct(book);?err?!=?nil?{
?????????c.JSON(http.StatusInternalServerError,?gin.H{
????????????"error":?err.Error(),
?????????})
?????????c.Abort()
?????????return
??????}

??????c.JSON(http.StatusOK,?gin.H{
?????????"message":?"OK",
?????????"booking":?book,
??????})
???})

???r.Run()
}

func?bookableDate(fl?validator.FieldLevel)?bool?{

???if?date,?ok?:=?fl.Field().Interface().(time.Time);?ok?{
??????today?:=?time.Now()
??????if?date.Unix()?>?today.Unix()?{
?????????return?true
??????}
???}

???return?false
}


正在回答

4 回答

對的,V9就是這樣用的

0 回復 有任何疑惑可以回復我~

{"error":"Key: 'Booking.CheckIn' Error:Field validation for 'CheckIn' failed on the 'bookableDate' tag"}w

0 回復 有任何疑惑可以回復我~

Undefined validation function 'bookableDate' on field 'CheckIn'

1 回復 有任何疑惑可以回復我~
#1

日落梧桐

解決了嗎?
2021-03-31 回復 有任何疑惑可以回復我~
#2

日落梧桐 回復 日落梧桐

lz是正確的,type Booking struct里,驗證規則的地方是validate,不是視屏里的binding,改一下就行了。
2021-03-31 回復 有任何疑惑可以回復我~
#3

日落梧桐 回復 日落梧桐

不是這個原因
2021-03-31 回復 有任何疑惑可以回復我~
#4

日落梧桐

http://www.xianlaiwan.cn/qadetail/353072?t=556083#id_556083
2021-04-01 回復 有任何疑惑可以回復我~
查看1條回復

為啥我的代碼 此處傳過來的時間恒為?2012-04-01 00:00:00 +0800 CST

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

validator v8升到v9之后代碼變成這樣,綁定和驗證分離了, 不知道寫成這樣行不行,但是運行還是沒問題的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號