2017-07-27 8 views
0

オブジェクトでArrayCollectionをシリアル化しました。すべてがjson/serializer-bundleでjsonにシリアル化されています。私は(それが重要だ)キーを使用して私のコレクションのシリアル化を解除したいときはJMSシリアライザはオブジェクトのArrayCollectionを非直列化します

deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json'); 

私は配列を取得します。私は結果と新しいのArrayCollection作るときしかし:

new ArrayCollection(deserialize($data, 'ArrayCollection<int, FooBundle\Entity\Item>', 'json')); 

をすべてが正常であると私はオブジェクトであるArrayCollectionを取得し、すべてのキーが保存されています。誰かが第一の方法がうまくいかない理由を知っているかもしれません。私は(ArrayCollectionのタイプ)フィールドアイテムと別のクラスを作成した見出さhttp://jmsyst.com/libs/serializer/master/reference/annotations

答えて

0

のみ液:

のJMSシリアライザは、ここではセクション@TypeオブジェクトのArrayCollectionのFにデシリアライズする可能性を有しています。以下はこのクラスのjms-serializerの定義です:

FooBundle\Entity\Cart: 
    exclusion_policy: ALL 
    properties: 
     items: 
      expose: true 
      type: ArrayCollection<int, FooBundle\Entity\CartItem> 
関連する問題