<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 用于數據校驗: * #### 校驗數據是否合法 ## **安裝**: ~~~ go get github.com/astaxie/beego/validation ~~~ ## **測試**: ~~~ go test github.com/astaxie/beego/validation ? ? ? ? ok ? ? github.com/astaxie/beego/validation ? ? 0.449s ~~~ ## **beego中使用**: ~~~ func (l *LoginController) Post() { ? ?name := l.GetString("name") ? ?age := l.GetString("age") ? ?addr := l.GetString("addr") ? ? ?valid := validation.Validation{} ? ?valid.Required(name,"name") ? // 這里的key是valid.Errors中的key,用來獲取err的key ? ?valid.Required(age,"age") ? ?valid.Required(addr,"addr") ? ? ?if valid.HasErrors() { ? ? ? ?// 如果有錯誤信息,證明驗證沒通過 ? ? ? ?// 打印錯誤信息 ? ? ? ?for _, err := range valid.Errors { ? ? ? ? ? ?fmt.Println(err.Key, err.Message) ? ? ? ? ? ?message := err.Key + err.Message ? ? ? ? ? ?l.Ctx.WriteString(message) ? ? ? } ? } ? ? ?l.TplName = "login.html" } ~~~ ## **自定義錯誤信息**: ~~~ valid.Required(name,"name").Message("用戶名不能為空") ? // 這里的key是valid.Errors中的key,用來獲取err的key valid.Required(age,"age").Message("年齡不能為空") valid.Required(addr,"addr").Message("地址不能為空") ~~~ ## **解析到結構體并校驗數據**: ~~~ type LoginParams struct { ? ?Name string ? ?Age int ? ?Addr string } ? ? func (l *LoginController) Post() { ? ? ?valid := validation.Validation{} ? ? ?params := LoginParams{} ? ?if err := l.ParseForm(&params); err != nil { ? ? ? ?//handle error ? ? ? ?return ? } ? ?valid.Required(params.Name,"name").Message("用戶名不能為空") ? ?valid.Required(params.Age,"age").Message("年齡不能為空") ? ?valid.Required(params.Addr,"addr").Message("地址不能為空") ? ?if valid.HasErrors() { ? ? ? ?// 如果有錯誤信息,證明驗證沒通過 ? ? ? ?// 打印錯誤信息 ? ? ? ?for _, err := range valid.Errors { ? ? ? ? ? ?fmt.Println(err.Key, err.Message) ? ? ? ? ? ?message := err.Key + err.Message ? ? ? ? ? ?l.Ctx.WriteString(message) ? ? ? } ? } ? ? ?l.TplName = "login.html" } ~~~ ## **通過 StructTag校驗數據:** * 驗證函數寫在 "valid" tag 的標簽里 * 各個函數之間用分號 ";" 分隔,分號后面可以有空格 * 參數用括號 "()" 括起來,多個參數之間用逗號 "," 分開,逗號后面可以有空格 * 正則函數(Match)的匹配模式用兩斜杠 "/" 括起來 * 各個函數的結果的 key 值為字段名.驗證函數名 ~~~ type LoginParams struct { ? ? ?Name string valid:"Required" ? ? ?Age int ? ?valid:"Required;MinSize(2)" ? ? ?Addr string ? ?valid:"Required" } ? func (l *LoginController) Post() { ? ? ? ?valid := validation.Validation{} ? ? // 解析到結構體 ? ? ?params := LoginParams{} ? ? ?if err := l.ParseForm(&params); err != nil { ? ? ? ? ?//handle error ? ? ? ? ?return ? ? } ? ? ? ?//重寫錯誤信息:validation.SetDefaultMessage(map) ? ? ?var messages = map[string]string{ ? ? ? ?"Required": "不能為空", ? ? ? ?"MinSize": ?"最短長度為 %d", ? ? ? ?"Length": ? "長度必須為 %d", ? ? ? ?"Numeric": ?"必須是有效的數字", ? ? ? ?"Email": ? ?"必須是有效的電子郵件地址", ? ? ? ?"Mobile": ? "必須是有效的手機號碼", ? ? } ? ? ?validation.SetDefaultMessage(messages) ? ? ? ?// 校驗 ? ? ?b, err := valid.Valid(&params) ? ? ? ?// 驗證StructTag 是否正確 ? ? ?if err != nil { ? ? ? ? ? ?fmt.Println(err) ? ? } ? ? ? ?if !b { ? ? ? ? ? ?// 驗證沒通過,則b為false ? ? ? ? ?for _, err := range valid.Errors { ? ? ? ? ? ? ?fmt.Println(err.Key, err.Message) ? ? ? ? ? ? ?message := err.Key + err.Message ? ? ? ? ? ? ?l.Ctx.WriteString(message) ? ? ? ? } ? ? } } ~~~ ### 多個StructTag之間用空格隔開
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看