ホームページ > バックエンド開発 > Golang > github.com/go-playground/validator/v10 パッケージの required_if の組み合わせに関する問題

github.com/go-playground/validator/v10 パッケージの required_if の組み合わせに関する問題

WBOY
リリース: 2024-02-11 11:54:08
転載
506 人が閲覧しました

github.com/go-playground/validator/v10 包中的 required_if 组合问题

php エディター Baicao は、github.com/go-playground/validator/v10 パッケージの required_if の組み合わせに関する質問を紹介します。このパッケージをデータ検証に使用する場合、特定のフィールドの値に基づいて他のフィールドが必要かどうかを判断する必要がある場合があります。現時点では、required_if 組み合わせルールを使用して、この要件を達成できます。指定された条件に基づいてフィールドが必須かどうかを判断できるため、非常に柔軟で実用的です。この記事では、required_if 組み合わせルールを使用してこの問題を解決する方法を詳しく説明します。

質問内容

ソフトウェアパッケージのバージョンなど。 v9、v10:

パッケージ バージョン: v10

質問、問題、改善点: 以下のコードを実行しようとすると。このエラーが発生します。有線です。

######出力###### リーリー

デモまたは再現用のコード例:

リーリー コードまたは検証パッケージの問題を特定できません。ご協力をいただければ幸いです...回避策

追加

omitempty

例: リーリー 完全な例は playground にあります (インポートされたパッケージの数が大きいため、これは Playground では確実に実行されないことに注意してください)。

問題は、required_if によりライブラリが

person

//Entity が存在するかどうかをチェックするにもかかわらず、ライブラリは空の ## を検証することです。 #パーソン/エンティティ (そして失敗します!)。 omitempty を追加することは、ライブラリが空の struct を無視することを意味します。これは、required_if が必須の struct## を保証するため、望ましい結果が得られます。 (検証されることを意味します)。 もう 1 つのオプションは、ポインターを使用することです (playground): リーリー ここでの違いは、

Entity

がない場合、値は nil (デフォルト値を持つ

Entity

とは対照的に) になることです。 validator 検証できないことを意味します。 注: v := validator.New(validator.WithRequiredStructEnabled()) を使用することをお勧めします (documentation に従って)。

以上がgithub.com/go-playground/validator/v10 パッケージの required_if の組み合わせに関する問題の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート