package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
type Response struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}
type User struct {
Id int `json:"id"`
Phone string `json:"phone"`
}
type LoginParams struct {
Phone int64 `binding:"required,min=11,max=11" form:"phone" json:"phone"`
}
func ReturnResponse(c *gin.Context, code int, msg string, data interface{}) {
c.JSON( http.StatusOK, Response{
Code: code,
Msg: msg,
Data: data,
})
}
func RegisterOrLogin(c *gin.Context) {
var loginParams LoginParams
var user User
err := c.ShouldBind(&loginParams)
if err != nil {
ReturnResponse(c, 40040, err.Error(), nil)
return
}
result := MysqlDb.Table("user").Find(&user)
fmt.Println(result)
ReturnResponse(c, 200, "success", result)
}
验证请求参数 phone 最开始设置 len=11,查看文档发现,在 int 情况下,直接验证这个数值。 换成 min,max 也是验证这个数值 如果我验证 int 长度应该用什么
1
Kinnice 2021-05-11 14:37:42 +08:00
应使用正则
|
2
Vegetable 2021-05-11 15:00:51 +08:00
int 的长度不也能转化为值的区间吗
|
3
janxin 2021-05-11 15:01:01 +08:00
可是这个不是应该是个 string 吗...
|
4
linauror 2021-05-11 15:05:43 +08:00
一般手机号都是存字符串类型,没必要搞成 int
|
5
awanganddong OP 明白了
|
6
gollwang 2021-05-11 18:05:08 +08:00
不是应该 string max=11 吗?
|
7
awanganddong OP 如果是 int 类型的话,我该怎么判断最大和最小呢
|
8
buffzty 2021-05-12 10:24:19 +08:00
真实项目中 phone 是字符串 写个自定义验证规则
var ( phoneReg = regexp.MustCompile(`^1[3456789]\d{9}$`) ) func validPhone(fl validator.FieldLevel) bool { val := fl.Field().String() return phoneReg.MatchString(val) } validate.RegisterValidation("phone",validPhone) |
9
mainjzb 2021-05-12 12:40:43 +08:00
>9999999999 && <=99999999999
|
10
awanganddong OP souga
|