問題タブ [jms-serializer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
symfony - jmsserialize が OneToOne エンティティを正しい方法で逆シリアル化しない
私は2つのエンティティを持っています:User
とUserInfo
:
そして、JMSSerializer とその Doctrine Contructor によって送信された User を逆シリアル化しようとしています。が指定されていない場合、すべて正常に動作しUserInfo
ます。ユーザーが DB からロードされ、送信されたフィールドが更新されます。
送信する方法:
私が逆シリアル化されるのは、User と UserInfo が十分にロードされていることです。
しかし、次のようなものを送信しようとすると:
short_date_format
は更新およびシリアル化されますが、他のすべてのフィールドは DB からロードされず、すべてが に設定されnull
ます。これは私が取得したい動作ではありません。どうすればこれを修正できますか?
アップデート
適切にやりたいのであれば、単一の「ネストレベル」にパッチを当てたほうがいいと思いました。URL は次のようになります (FOSRestbundle コントローラーの注釈)。
このようにして、Ocramius の提案に従って userInfoにパッチを当てることができます。誰かがこれについてフィードバックをくれますか? まともなパッチを実装するために、それが良い/ベストプラクティスになると思いますか?
php - FosRestBundle: 動的仮想プロパティ
FOSRestBundle : Annotations では、データベースからプロパティ名を取得するため、複数の@VirtualPropertyを動的な名前で使用したい(プロパティの数は不明)
property_name1 & property_name2 .. property_name3 .. などは無限数で動的です
それらを仮想プロパティとして設定したいのですが、各プロパティには文字列値があります。
それらを1つのプロパティを持つ配列として設定したくありません。
これを行う方法がない場合は、コントローラーから同じタスクを実行できるかどうか教えてください。
php - JMS シリアライザーを使用して XML をデシリアライズし、空の opbject を取得します
次の XML を逆シリアル化しようとしています。
次のエンティティを作成しました。
これは 2 番目のエンティティです。
次に、コントローラーで次のコードを使用してシリアル化します。
オブジェクトだけが空になり続けますか?
symfony - シリアル化グループを無視する Symfony2/FOSRestbundle (結果の配列用)
シリアライゼーション グループは、1 つのエンティティをフェッチするときにうまく機能しますが、結果の配列をフェッチしようとすると、空の結果セットが得られます。
私はこれをそのようにします:
ビューオブジェクトに手動でコンテキストを設定しようとしましたが、同じ状況です。グループを設定しないか、「デフォルト」に設定した場合:
適切なシリアル化された結果セットを取得しました。
私のエンティティ:
そして私のコントローラー:
PS。
doctrine-orm - ObjectConstructor で注釈グループを考慮する方法
JMSSerializer には Doctrine Object Constructor が付属していますが、主キーを形成する 2 つのプロパティを持つエンティティを想像してみてください。
group=1
逆シリアル化中に使用することで、1 つのプロパティ キーが除外されます。クライアントは引き続き と の両方email
を送信する可能性がありusername
ます。email
考慮すべきではありませんが。
残念ながら、本体で 2 つのプロパティを渡すと、DoctrineObjectConstructor
逆シリアル化によって何かが除外されているかどうかがチェックされないため、2 つの値に従って、DB からエンティティをロードしようとします。
私がやりたいことは、注釈を付けたグループを考慮してfallbackConstructor
、識別子を形成するプロパティが欠落している場合に使用することです。
スターターとして、これは良い点です。私は独自のサービスを作成しましたannotationDriver
。次に、識別子を形成するプロパティが実際のグループに関連付けられていない場合:
fallbackConstructor
本体でそのプロパティを渡さなかったかのように、 にフォールバックできます
...そんなに早くない!私のエンティティは、すべての識別子が存在User
する場所を拡張するUserBase
ため、おそらく一般的な方法で階層を考慮する必要があります。
ヒントはありますか?