6

엔티티의 모든 변경 사항을 기록하려고합니다. StofDoctrineExtensionsBundle에서 제공하는대로 Loggable 교리 확장을 조사했습니다.컬렉션이있는 엔티티를 로그하는 방법은 무엇입니까?

간단한 데이터를 저장하는 필드 (예 : 문자열과 정수. 하지만 내 엔티티는 다른 엔티티에 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을 사용하여 수행 할 수 있습니다. 특히 postUpdatepostPersist 이벤트를 수신해야합니다. 이는 엔티티가 업데이트되고 생성되어 태그가 저장된 경우에 발생합니다.

또 다른 옵션은 ManyToMany 관계를 제거하는 것입니다. 이를 위해 AssetTag에 대한 OneToMany 관계를 갖는 중간 엔터티 AssetTag을 만듭니다. 이 작업이 완료되면 EntityAudit Doctrine Extension을 사용하여 이러한 유형의 관계를 지원할 수 있습니다.

+0

Loggable도 중간 엔터티의 생성을 감지 할 수 있습니다. –

관련 문제