getEntityManager(); $old = new ReflectionObject($currentRecord); $new = new ReflectionObject($newRecord); foreach ($old->getProperties() as $property) { $propertyName = $property->getName(); if ($new->hasProperty($propertyName)) { $newProperty = $new->getProperty($propertyName); $newProperty->setAccessible(true); $property->setAccessible(true); $newProperty->setValue($newRecord, $property->getValue($currentRecord)); } } try { $em->persist($newRecord); $em->remove($currentRecord); $em->flush(); } catch (Throwable) { dump($newRecord); } } }