条令事件不起作用


Doctrine event not working

我使用条令事件(监听器和订阅者),在这两个事件中我都有这样一个问题:当我运行postPersist时,它们不会一直运行。我的意思是,在foreach中,我称学说为移除,但事件只调用一次,而不是多次?有人能给我指路吗?

示例代码如下:

foreach ($input as $key => $value) {
            $entity = $this
                ->findOneBy([$this->primaryKeyName => $value[$this->primaryKeyName]]);
            if($i!=1)
                $this->_em->getEventManager()->dispatchEvent('postUpdate',new LifecycleEventArgs($entity,$this->_em));
            $i++;
            $this->_em->remove($entity);
            $this->_em->flush();
            $result[] = $value;
        }
        return $result;

您需要确保您的持久性超出foreach,如下所示:

foreach ($input as $key => $value) {
    $entity = $this
        ->findOneBy([$this->primaryKeyName => $value[$this->primaryKeyName]]);
    $this->_em->remove($entity);
    $result[] = $value;
}
$this->_em->flush();
$this->_em->close();

这将调用事件订阅者postRemove事件。