在Symfony 2.1中查找通过postUpdate侦听器更改的内容

key*_*red 8 doctrine symfony

我有一个postUpdate监听器,我想知道更新之前的值是什么,以及更新后DB条目的值是什么.在Symfony 2.1中有没有办法做到这一点?我查看了存储在getUnitOfWork()中的内容,但由于更新已经发生,因此它是空的.

key*_*red 8

这里找到解决方案.我需要的实际上是preUpdate()的一部分.我需要在LifecycleEventArgs上调用getEntityChangeSet().

我的代码:

public function preUpdate(Event\LifecycleEventArgs $eventArgs)
{   
    $changeArray = $eventArgs->getEntityChangeSet();

    //do stuff with the change array

}
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是'preUpdate(Event\PreUpdateEventArgs $ eventArgs)`?`LifecycleEventArgs`中不存在`getEntityChangeSet()`方法 (6认同)

小智 7

你可以使用这个 ansfer Symfony2 - Doctrine - 在更新后没有变更集

/**
 * @param LifecycleEventArgs $args
 */
public function postUpdate(LifecycleEventArgs $args)
{
    $changeArray = $args->getEntityManager()->getUnitOfWork()->getEntityChangeSet($args->getObject());
}
Run Code Online (Sandbox Code Playgroud)