【发布时间】:2015-01-26 04:34:34
【问题描述】:
我正在尝试将 json 反序列化为实体,然后合并实体。
我相信我过去曾使用此功能发送 ID 和我希望更新的任何字段。例如:
在我的数据库中:
| id | first | last | city |
| 1 | Jimmy | James | Seattle |
然后我将反序列化以下 json 并合并实体
$json = { "id" : 1, "city": "chicago"}
$customer = $serializer->deserialize($json, 'App\CustomerBundle\Entity\Customer', 'json');
$em->merge($customer);
预期的结果是:
| id | first | last | city |
| 1 | Jimmy | James | Chicago |
但是我得到以下信息:
| id | first | last | city |
| 1 | null | null | Chicago |
就像我说的那样,我相信我在某些时候可以使用此功能,我不确定这是否与 jms_serializer 或 em->merge 有关。
$customer->getFirst() 在实体合并前后返回 null
【问题讨论】:
-
“合并实体”是什么意思?您想更新数据库中的值或将缺失的属性加载到您的对象中?
-
我正在尝试通过反序列化包含实体 ID 的 json 来加载实体。我认为它会加载缺少的属性,即:
$serializer->deserialize("{"id":1, "city": "chicago"}, .....)将返回一个具有属性( id => 1, first => Jimmy, last => James, city => chicago)的实体,其中城市被覆盖,但其余数据已加载。
标签: json symfony doctrine-orm jms-serializer