当应用程序用户对一堆现有实体进行修改时,我必须保留新实体(可追溯性问题)。我在主义onFlush事件上创建了一个eventListener。问题是:这不应该附加在灯具上。 我这样做是为了防止灯具触发侦听器,但是我想知道这是否是一个好的解决方案:
输入我的services.yaml
App\DataFixtures\:
class: App\DataFixtures\LoadFixtures
tags: [name: doctrine.fixture.orm]
arguments:
- '@doctrine.orm.default_entity_manager.event_manager'
在我的App \ DataFixtures \ LoadFixtures中:
public function __construct(EventManager $eventManager)
{
$this->eventManager = $eventManager;
}
public function load(ObjectManager $manager)
{
$historizationManager = null;
foreach ($this->eventManager->getListeners() as $event =>$listeners){
foreach ($listeners as $key => $listener){
if($listener instanceof HistorizationManager){
$historizationManager = $listener;
}
}
}
if($historizationManager){
$this->eventManager->removeEventListener(array('onFlush'),$onFlushHistoryListener);
}
// doing some work
}
这是我提供的最简单的解决方案,请让我知道这是否有问题。
谢谢
答案 0 :(得分:-1)
如果仍然存在问题,则可以尝试以下操作:
enabled
标志,默认为true
false
但是,如果您找到了更好的方法,很高兴收到您的来信