6

Bir varlığın tüm değişikliklerini günlüğe kaydetmek istiyorum. StofDoctrineExtensionsBundle tarafından sağlanan Loggable doktrin uzantısına baktım.Koleksiyonların bulunduğu bir varlık nasıl kaydedilir?

Basit verileri depolayan alanlar için çalışıyorum, ör. dize ve tamsayılar. Ancak, varlığımın başka bir varlığa, örneğin; Tags.

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

onun ilişkileri olan bir varlık oturum açmak için bir yolu var mı:

bu hatayı alıyorum? Başka bir pakete geçmeyi umursamıyorum.

+0

İşte [GitHub ile ilgili bir sorun] (https://github.com/Atlantic18/DoctrineExtensions/issues/1160). –

cevap

4

Şu anda bu işlevselliğin kutusunda hiçbir paket/uzantı yok. Bir seçenek kendiniz uygulamak olacaktır. Bu Doctrine Listeners kullanılarak yapılabilir. Özellikle, postUpdate ve postPersist olaylarını dinlemeniz gerekir - bunlar, varlık güncellendiğinde ve oluşturduğunuzda ve Etiketlerinizi orada saklarken gerçekleşir.

Başka bir seçenek ManyToMany ilişkisinden kurtulmaktır. Bunun için hem Asset hem de Tag ile OneToMany ilişkisi olan bir ara varlık AssetTag oluşturun. Bu yapıldıktan sonra, bu tür ilişkileri destekleyen EntityAudit Doctrine Extension'ı kullanabilirsiniz.

+0

Loggable'ın ara öğenin oluşturulmasını da algılayabildiğini unutmayın. –

İlgili konular