首页 > 解决方案 > 仅保留属于某个组的实体属性

问题描述

在我的 Symfony 5.2 控制器中,我使用@Groups注释部分反序列化实体。

$serializer->deserialize(
    $request->getContent(),
    MyEntity::class,
    'json',
    [AbstractNormalizer::OBJECT_TO_POPULATE => $myEntity, AbstractNormalizer::GROUPS => ['updatable']]);

这用于更新已经存在的实体。

现在 Symfony 只按预期反序列化标记为updatable组的字段,我想保留并只保存updatable组中的字段。

不幸的是,持久化实体的简洁方式不允许基于组进行持久化。

$em->persist($myentity); // Persists all fields

这显然会在刷新时导致错误,因为非updatable字段设置为 null 或默认值,我不想坚持。

是否有任何简单的内置方法可以仅基于组保留特定列?

标签: symfonydoctrine-ormdoctrinesymfony5

解决方案


推荐阅读