11

我想记录实体的所有更改。我研究了 StofDoctrineExtensionsBundle 提供的Loggable学说扩展。

我让它适用于存储简单数据的字段,例如字符串和整数。但我的实体也与另一个实体有多对多关系,例如Tags.

我收到此错误:

InvalidMappingException: Cannot versioned [tags] as it is collection in object - Hn\AssetDbBundle\Entity\Asset

有没有办法记录实体及其关系?我不介意切换到另一个捆绑包。

4

1 回答 1

7

目前没有包/扩展具有此功能。一种选择是自己实现它。这可以通过使用Doctrine Listeners来完成。特别是您需要收听事件 - 这些发生在更新和创建实体并将您的标签存储在那里时postUpdatepostPersist

另一种选择是摆脱ManyToMany关系。为此,创建一个与 和AssetTag都有OneToMany关系的中间实体。完成此操作后,您可以使用支持此类关系的EntityAudit Doctrine Extension。AssetTag

于 2015-07-07T22:35:03.487 回答