#php エディタ Apple は本日、一部のアップデートの処理時にキーが存在しないという問題についてお知らせします。 PATCH リクエストを行うときに、キーが存在しない状況が発生することがあります。では、どのように対処すればよいのでしょうか?この記事では、この状況に適切に対処し、システムの正常な動作を確保できるように、この問題を解決する方法と手順を詳しく紹介します。見てみましょう!
この問題を解決する方法を考えています。
いくつかのフィールドを含む user
構造があります。ただし、パッチ ユーザー呼び出しの json オブジェクトをデコードするときに、キーが欠落しているため、値が *nil に設定されます。対応するデータベース プロパティのタイプは text null
であるため、キーが欠落している場合、結果は常に null として格納されます。
imageurl
nil も可能ですが、オブジェクトがクライアントから送信される場合:
これは、imageurl
が JSON に存在しないため、imageurl
= nil にデコードされます。
各フィールドが存在するかどうかをチェックする dto の代わりに map[string]struct{}
を使用せずに部分的な更新を処理するにはどうすればよいですか?
カスタム json.unmarshaler
を実装して、フィールドが完全に省略されていても、その値が であるかどうかを判断できます。 null
、または null 以外の値が指定されます。
https://www.php.cn/link/22f791da07b0d8a2504c2537c560001c
カスタム タイプを必要としないもう 1 つの方法は、 json をアンマーシャリングする 前に go フィールドの値を 現在の データベース列の値に設定することです。受信した JSON に一致するフィールドが含まれていない場合、json.decoder
(json.unmarshal
によって使用される) はターゲットのフィールドに「タッチ」しません。
https://www.php.cn/link/cdf49f5251e7b3eb4f009483121e9b64
以上がキーが存在しない場合の PATCH 部分更新の処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。