SonataAdminBundle - check changes in `preUpdate` hook

doctrine-orm, sonata-admin, symfony

Solution

This question is a bit similar to this one

Your solution is just to compare the field of the old object with the new one and see where it differs.

So for example:

public function preUpdate($newObject)
{
    $em = $this->getModelManager()->getEntityManager($this->getClass());
    $originalObject = $em->getUnitOfWork()->getOriginalEntityData($newObject);

    if ($newObject->getSomeField() !== $originalObject['fieldName']) {
        // Field has been changed
    }
}

Problem

Is it possible to check if field was changed on `preUpdate` hook? I'm looking for something like `preUpdate` `hasChangedField($fieldName)` Doctrine functionality. Any ideas?

Original source

Related problems