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

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

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!