代码之家  ›  专栏  ›  技术社区  ›  hvertous

在“postfrush”条令事件中创建新实体

  •  0
  • hvertous  · 技术社区  · 6 年前

    我正在努力寻找一种方法来表演 persist() flush() postFlush 事件)。

    我收集必要的实体 onFLush 事件(使用变更集)并等待直到刷新所有实体(我收集的)以获取其id(自动递增)。 这样我就有了一个数组,其中包含了所有需要的实体及其变更集和id集。 然后,我想根据以前收集的实体的字段创建新的实体(我们称之为“跟踪”),并在数据库中持久化和刷新“跟踪”。

    但我真的被困在这里,因为我不知道实体的身份 onFlush 后冲洗 当他们已经有了身份证。

    目前的条令文件规定如下:

    如果我敢这么做,它会以递归结束,php会失败并出现错误。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Laurynas    6 年前

    我相信你可以做一个检查,如果你不刷新“痕迹”实体,然后执行你的“痕迹”创建。这不应该循环。

    eventDispatcher . 您可以手动分派事件,因为这样可能更干净。

    更多关于“跟踪”的细节会很有帮助,从我可以想象它是某种变更日志,历史;因此,我可以建议 EntityAuditBundle . 它很好地与信条一起工作,不难设置,我自己也在使用它。