【发布时间】:2019-10-01 20:21:24
【问题描述】:
我有一个模型字段(“数据”),它映射到一个 json MYSQL 字段,如下所示:
class Person {
/** @Id @Column(type="integer", name="person_id") @GeneratedValue **/
protected $id;
/** @Column(type="json") **/
protected $data;
/** @Column(type="string") **/
protected $name;
}
我可以查询和序列化 Person,但是数据字段是嵌套的:
$person = $personRepository->find(11);
echo $serializer->serialize($person, 'json');
//returns {"id": 11, "name": "Daniel", "data": {"age": 57, "city": "Omaha"} }
我想取消嵌套 data 字段,以便它内联序列化。
//returns {"id": 11, "name": "Daniel", "age": 57, "city": "Omaha"}
这可能吗?
【问题讨论】:
-
您可以尝试为这种仅将“数据”键值数组合并到主数组并删除“数据”键的实体类型编写a custom normalizer...或者如果您还需要稍后将数据反序列化回实体,您可以查看custom encoder。我在实践中没有使用/需要这些,但理论上这些看起来可以为您的问题提供答案:)
标签: php json symfony orm doctrine