1

これが私がやりたいことです:

  1. 私はオブジェクトを持っていますArticle.2つのプロパティidと言ってみましょうtitle
  2. XML または JSON のいずれかで JMSSerializerBundle を使用してシリアル化したい (ただし、サポートされている任意の形式に適用する必要があります)
  3. シリアル化中に、いくつかの情報を追加して、シリアル化された結果が次のようになるようにします。

    <article>
      <id>1</id>
      <title>Lorem ipsum</title>
      <slug>1-lorem-ipsum</slug>
    </article>
    

ご覧のとおり、結果には、<slug>実際にはArticleオブジェクトのプロパティではない要素が追加されています。

コードに飛び込んで、カスタムのシリアライゼーション ハンドラーを作成しようとしました。動的オブジェクト プロパティを追加するなど、いくつかの戦略を試しましたが、シリアル化されません。で同様の問題を読みましたがstdClass、同じ問題が当てはまると思います。インスタンス化後にオブジェクトに動的に追加されたため、このプロパティのメタデータは存在しません。

次に、新しい XML 要素を作成することにしましたが、新しく作成した要素を返すと、シリアル化されるのはこれだけになり、次のような結果になります。

    <article>
      <slug>1-lorem-ipsum</slug>
    </article>

また、ドキュメント全体を返そうとしましたが、エラーが発生しました (DOMElement が必要です)。

私は少し立ち往生しており、どんな助けでも大歓迎です。

4

1 に答える 1

2

シリアル化された各オブジェクトに Link rel を自動的に追加することで、同様の問題が発生しました。私は最終的に、シリアル化されるエンティティで Link エンティティとこれへの関連付けを作成することにしました。スラグでも同じことができます。

これには、たとえば URL が変更された場合にリンクを動的に編集できるという追加の利点がありました。

于 2012-11-27T12:15:16.967 に答える