【发布时间】:2013-10-18 22:58:27
【问题描述】:
我有一个具有属性id 和trucknr 的实体对象。我放置了一些数据,然后查询所有数据。
我使用 JMS SerializerBundle 将其序列化为 JSON,并使用 file_put_contents 将其导出到 JSON 文件,然后使用 deserialize 读取我的 JSON 文件,并且它可以很好地反序列化。
我用:
$read = $serializer->deserialize($file,'ArrayCollection<App\TestBundle\Entity\Truck>','json');
问题是当我试图将它保存到我的数据库时。为此我使用了:
$em = $this->getDoctrine()->getManager();
$em->merge($read);
$em->flush();
我收到此错误:
EntityManager#merge() expects parameter 1 to be an entity object, array given.
当我在 $read 上运行 dump_var 时,我得到一个包含三行的数组集合:
array(3) { [0]=> object(App\TestBundle\Entity\Truck)#767 (2) { ["id":protected]=> NULL ["trucks_nr":protected]=> string(4) "1243" }
[1]=> object(App\TestBundle\Entity\Truck)#782 (2) { ["id":protected]=> NULL ["trucks_nr":protected]=> string(4) "3245" }
[2]=> object(App\TestBundle\Entity\Truck)#783 (2) { ["id":protected]=> NULL ["trucks_nr":protected]=> string(4) "5622" } }
我不知道我正在尝试做的事情是否可行。当我查询一行时,它会保持或合并正常。是否可以持久化对象的数组集合,如果可以,如何?
【问题讨论】:
标签: json symfony jmsserializerbundle