检查哪个表单字段值已更改 Symfony 3

D_J*_*ski 0 php forms symfony-forms symfony symfony-3.1

我需要在 FormType 中检查哪个字段已更改。有什么方法可以做到吗?我已经搜索了一段时间,然后尝试以几种方式(也使用表单事件)获取编辑过的实体字段以捕获编辑过的字段,但没有简单的结果。

有什么方法可以轻松做到这一点,或者我需要在制作这样的东西时更有创意?最好的办法是,如果我能得到一个实体类型的例子,但任何线索都会很棒。

PS我不能在客户端做 - 由于特殊原因,我必须在服务器端做。

D_J*_*ski 6

完成此操作:https : //stackoverflow.com/a/33923626/8732955

假设我们想检查我们的重要对象中的“状态”字段,代码需要看起来像这样

if($form->isSubmitted() && $form->isValid())
{
        $uow = $em->getUnitOfWork();
        $uow->computeChangeSets();
        $changeSet = $uow->getEntityChangeSet($importantObject);

        if(isset($changeSet['status'])){
          //do something with that knowledge
        }
}
Run Code Online (Sandbox Code Playgroud)