我想记录实体的所有更改。我查看了StofDoctrineExtensionsBundle提供的Loggable学说扩展。
我让它适用于存储简单数据的字段,例如:字符串和整数。但是我的实体也与另一个实体有许多关系,例如Tags
。
我收到此错误:
InvalidMappingException: Cannot versioned [tags] as it is collection in object - Hn\AssetDbBundle\Entity\Asset
有没有办法记录实体与其关系?我不介意切换到另一个包。
答案 0 :(得分:4)
目前没有任何捆绑/扩展程序具有开箱即用的此功能。一种选择是自己实现它。这可以通过使用Doctrine Listeners来完成。特别是您需要收听postUpdate
和postPersist
事件 - 这些事件会在更新和创建实体并将其存储在那里时发生。
另一种选择是摆脱ManyToMany
关系。为此,创建一个与AssetTag
和OneToMany
Asset
关系Tag
的中间实体artists = DB[:artists]
artists.update(:column_name => 'new value')
。完成此操作后,您可以使用EntityAudit Doctrine Extension,它支持此类关系。