实体在Symfony 2中的先前状态

实体在Symfony 2中的先前状态,symfony,doctrine-orm,Symfony,Doctrine Orm,我有一个疑问。可能是因为我是symfony的新手。 我有一个具有状态的实体,我以一种状态可以更改的形式显示它。 在控制器中,我需要以前的状态与新状态进行比较,以执行一些操作。 当我绑定时,我无法访问此$entity的以前状态 $editForm = $this->createForm(new StatusType(), $entity); $editForm->bind($request); 如何访问这些以前的数据 致以最良好的祝愿 也许有更好的方法,但您可以使用: $editFo

我有一个疑问。可能是因为我是symfony的新手。 我有一个具有状态的实体,我以一种状态可以更改的形式显示它。 在控制器中,我需要以前的状态与新状态进行比较,以执行一些操作。 当我绑定时,我无法访问此$entity的以前状态

$editForm = $this->createForm(new StatusType(), $entity);
$editForm->bind($request);
如何访问这些以前的数据


致以最良好的祝愿

也许有更好的方法,但您可以使用:

$editForm = $this->createForm(new StatusType(), $entity);
$entity_before = clone $entity; //you can do it before your createform 
$editForm->bind($request);

您好,它不起作用,因为$entity和$entity_之前是指向同一对象的指针。这是我的第一个想法。无论如何,谢谢!你确定吗?你查过了吗?当您执行$editForm->bind($request)时;您错过了原始实体,两个实体都指向同一个对象。我刚刚检查了,是的,我的数据库中没有修改$entity_,en$entity有形式更改,我当时不理解。我不需要在数据库$entity_中进行更新,只需要保留重复的实体来检查以前的状态(状态是一个关系manytone,表名为StatusTypes)。谢谢你的帮助,我不知道你的级别,如果这对你来说是显而易见的,那么很抱歉:使用var_dump($entity);var_转储(之前为实体_);在使用bind()方法之后,在更改表单中的某些字段后,是否仍有相同的对象?