FORM_EVENT可以访问原始值吗?因为在表单中,为了添加和编辑项目,我输入了一个日期并检查它是否大于当前日期。编辑时,我必须检查日期是否大于当前日期或等于最初发送的日期。 $事件 - > getData()(使用addEventListener)返回更改的数据:)
答案 0 :(得分:0)
您可以使用Doctrine UnitOfWork查找对象所做的差异。 为此,您需要访问EntityManager。
您可以获取原始对象,然后检查日期是否有效:
$uow = $entityManager->getUnitOfWork();
$uow->getUnitOfWork()
->getOriginalEntityData($object);
或者您可以获得已更改的所有属性的列表:
$uow = $entityManager->getUnitOfWork();
$changeset = $uow->getEntityChangeSet($object);
在大多数formEventListeners中,已经计算了更改,如果不是这种情况,您可以在获取实体更改集之前尝试运行$uow->computeChangeSets();
。
但是一定不要再运行两次,因为它可能会破坏已经存在的变化。