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 インターフェースを実装しています。
公開フィールド
| フィールド | 説明 |
|---|---|
FieldName | Go フィールド名。 |
FieldLabel | 解決済みラベル(ロケール対応)。メッセージの先頭に付きます。 |
FieldValue | 失敗したオリジナルの値。 |
TemplateLanguage | メッセージを描画する際に使われたロケール。 |
Error()
描画されたメッセージを返します。FieldLabel + Template + FieldLimitValue の形で組み立てられ、{field} / {limit} プレース ホルダーや {{ … }} による無接辞 ラップ用フックがあります。完全なテンプレート文法は エラーメッセージ を参照。
ミューテーター
通常はカスタムチェッカー内で、エラーを返す前に微調整するために 使います。
SetTemplate(key string)
キーで内部のテンプレートを差し替えます。以前に保存された制限値は クリアされ、メッセージがテンプレート間で漏れることはありません。
go
ctx := govalid.NewErrorContext(c)
ctx.SetTemplate("alphadash") // 別ルールのテンプレートを借りる
return ctxSetFieldLimitValue(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