[英]Can't get my old Entity in preUpdate Sonata
这是交易,我正在尝试更新实体,但是我想将更新之前的实体状态与更新之后的实体状态进行比较。
我尝试比较实体中的用户数。
例如,如果我添加一个用户,我想让我的代码知道,例如,我在更新之前有4个用户,在更新之后有5个用户(并获得该用户以供进一步使用)。
阅读了不同的主题之后,我尝试在preUpdate($object){}
方法中这样做
$em = this->getConfigurationPool()->getContainer()->get('doctrine')->getManager();
$original = $em->getUnitOfWork()->getOriginalEntityData($object);
但是两者
var_dump(count($object->getUsers()));
var_dump(count($original['users']));
给出相同的值,根据我的示例,两种情况下的值均为5(因此更新后的值)。
有什么方法可以将实体的old_state保存在var中? 我究竟做错了什么?
编辑:这不是Doctrine的preUpdate函数,而是SonataAdmin的preUpdate函数,不知道它们是否相同。
请在preUpdate函数中尝试以下操作:
$em = $this->getModelManager()->getEntityManager($this->getClass());
$original = $em->getUnitOfWork()->getOriginalEntityData($object);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.