我在Doctrine2 Entity Listener中有这个代码,用于侦听PreUpdate事件。 为什么原始实体数据包含新数据而不是旧数据?
/**
* @param PreUpdateEventArgs $args
*/
public function preUpdate(PreUpdateEventArgs $args)
{
$em = $args->getEntityManager();
$uow = $em->getUnitOfWork();
$original = $uow->getOriginalEntityData($args->getEntity());
echo $original['name']; // THIS OUTPUTS THE NEW NAME ???
die();
}
答案 0 :(得分:4)
您可以使用以下方法访问更改集:
getEntityChangeSet()
如果您想测试某个字段是否已更改,您可以使用:
hasChangedField($field)
如果你想得到一个字段的旧值:
getOldValue($field)
有关详细信息,请参阅: