【发布时间】:2022-10-17 22:09:31
【问题描述】:
我正在使用 Sylius,我想禁用由 gedmo/loggable 完成的地址更改日志。
这是在 AddressingBundle 的 Address.orm.xml 中添加的:
<gedmo:loggable log-entry-class="Sylius\Component\Addressing\Model\AddressLogEntry"/>
我们没有使用它,并且表格条目很快就会变得疯狂。 (半年超过一百万)
有什么方法可以删除注释或事件?我试图在 LoadClassMetadataEventArgs 上创建一个侦听器以将其从学说元数据中删除,但它不在这里。
PS:有关信息,我使用的是 sylius 1.10.13 和 Gedmo 3.2.0。
编辑: 我找到了一种删除 eventListener 的方法,但我不喜欢该解决方案,因为它禁用了 Gedmo 的所有可能记录,而不仅仅是 Address :
public function loadClassMetadata(LoadClassMetadataEventArgs $eventArgs): void
{
foreach ($eventArgs->getEntityManager()->getEventManager()->getListeners("postPersist") as $listener) {
if (get_class($listener) === LoggableListener::class) {
$eventArgs->getEntityManager()->getEventManager()->removeEventListener(['postPersist, onFlush'], $listener);
}
}
}
【问题讨论】:
-
请提供足够的代码,以便其他人可以更好地理解或重现该问题。