6

Я хочу зарегистрировать все изменения сущности. Я рассмотрел расширение доктрины Loggable, предоставленное StofDoctrineExtensionsBundle.Как зарегистрировать сущность с коллекциями?

Я получил его для полей, которые хранят простые данные, например. строка и целые числа. Но моя сущность также имеет отношение ManyToMany к другому объекту, например. Tags.

Я получаю эту ошибку:

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

Есть ли способ войти объект с его отношениями? Я не против переходить на другой пакет.

+0

. [Связанная проблема на GitHub] (https://github.com/Atlantic18/DoctrineExtensions/issues/1160). –

ответ

4

В настоящее время никакие комплекты/удлинители не имеют этой функциональности из коробки. Один из вариантов - реализовать его самостоятельно. Это можно сделать, используя Doctrine Listeners. В частности, вам необходимо прослушать postUpdate и postPersist события - это происходит, когда сущность обновляется и создается и хранит ваши теги.

Другой вариант - избавиться от отношений ManyToMany. Для этого создайте промежуточный объект AssetTag, который имел бы отношение OneToMany как к Asset, так и к Tag. После этого вы можете использовать EntityAudit Doctrine Extension, поддерживающий этот тип отношений.

+0

Обратите внимание, что Loggable может также обнаружить создание промежуточного объекта. –

 Смежные вопросы

  • Нет связанных вопросов^_^