【发布时间】:2012-01-04 12:06:43
【问题描述】:
我们正在使用 Symfony2 创建 API。更新记录时,我们希望 JSON 输入代表一个序列化的更新实体。 JSON 数据将不包含某些字段(例如,CreatedAt 应仅在创建实体时设置一次 - 并且永远不会更新)。例如,这是一个 JSON PUT 请求示例:
{"id":"1","name":"anyname","description":"anydescription"}
这是控制器上的 PHP 代码,它应该根据上面的 JSON 更新实体(我们正在使用 JMS 序列化程序包):
$supplier = $serializer->deserialize(
$this->get('request')->getContent(),
'WhateverEntity',
'json'
);
EntityManger (正确地)理解这是一个更新请求(实际上,一个 SELECT 查询是隐式触发的)。 EntityManager 还猜测(不正确) CreatedAt 属性应该被 NULLified - 它应该保留前一个。
如何解决这个问题?
【问题讨论】:
标签: symfony doctrine-orm