Skip to content

ErrContext

go
type ErrContext struct {
    FieldName        string
    FieldLabel       string
    FieldValue       interface{}
    TemplateLanguage language.Tag
    // 非公開のテンプレート状態
}

func (e *ErrContext) Error() string

func (e *ErrContext) SetTemplate(key string)
func (e *ErrContext) SetFieldLimitValue(v interface{})

すべてのバリデーション失敗の結果型。*ErrContext は標準の error インターフェースを実装しています。

公開フィールド

フィールド説明
FieldNameGo フィールド名。
FieldLabel解決済みラベル(ロケール対応)。メッセージの先頭に付きます。
FieldValue失敗したオリジナルの値。
TemplateLanguageメッセージを描画する際に使われたロケール。

Error()

描画されたメッセージを返します。FieldLabel + Template + FieldLimitValue の形で組み立てられ、{field} / {limit} プレース ホルダーや {{ … }} による無接辞 ラップ用フックがあります。完全なテンプレート文法は エラーメッセージ を参照。

ミューテーター

通常はカスタムチェッカー内で、エラーを返す前に微調整するために 使います。

SetTemplate(key string)

キーで内部のテンプレートを差し替えます。以前に保存された制限値は クリアされ、メッセージがテンプレート間で漏れることはありません。

go
ctx := govalid.NewErrorContext(c)
ctx.SetTemplate("alphadash") // 別ルールのテンプレートを借りる
return ctx

SetFieldLimitValue(v interface{})

{limit} 値(および暗黙の末尾追加)を設定します。組み込みは min/max/minlen/maxlen でこれを使い、描画されたメッセージに 閾値を含めます。

go
ctx := govalid.NewErrorContext(c)
ctx.SetFieldLimitValue(42)
return ctx

コンストラクタ

通常はあなたが直接呼ぶことはありません——カスタムチェッカーから 返してください。

go
func NewErrorContext(c CheckerContext) *ErrContext
func MakeUserDefinedError(msg string)  *ErrContext
func MakeValueTypeError(c CheckerContext) *ErrContext
func MakeCheckerParamError(c CheckerContext) *ErrContext
func MakeCheckerNotFoundError(c CheckerContext) *ErrContext
func MakeFieldNotFoundError(c CheckerContext) *ErrContext

MIT ライセンスのもとで公開されています。