内容へ移動
Cat Paw Software
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
トレース:
golang:validator
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
<markdown> # validator ## go-playground/validator * https://pkg.go.dev/github.com/go-playground/validator/v10 ### 使い方 ```go package main import ( "fmt" "time" "github.com/go-playground/validator/v10" ) type Plan struct { From time.Time `validate:"required"` // required は 必須項目 To time.Time `validate:"required,gtefield=From"` // gtefield=From は Fromより大きい値であること Rank string `validate:"required,oneof='A' 'B' 'C'"` // oneof='A' 'B' 'C' は A B Cいずれかの値であること Point int `validate:"required,point_and_rank"` // point_and_rank は 独自のバリデータ } func main() { p := &Plan{ From: time.Date(2022, time.November, 10, 0, 0, 0, 0, time.Local), To: time.Date(2022, time.November, 11, 0, 0, 0, 0, time.Local), Rank: "A", Point: 101, } // バリデータを作成 v := validator.New() // 独自のバリデータを設定 v.RegisterValidation("point_and_rank", func(fl validator.FieldLevel) bool { value := fl.Field().Int() rank := fl.Parent().FieldByName("Rank").String() switch rank { case "A": return value > 100 case "B": return value > 20 } return true }) // 構造体のバリデーションを実行し、バリデーションエラーを取得 err := v.Struct(p) if vErrs, ok := err.(validator.ValidationErrors); ok { for i, vErr := range vErrs { fmt.Printf("%d -- %#v\n\n", i, vErr) } } } ``` </markdown>
golang/validator.txt
· 最終更新:
2022/11/25 08:12
by
nullpon
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ