php - symfony3 - Symfony 2-Clona la entidad en una tabla diferente
reverse engineering doctrine (1)
Pero en realidad no estás clonando una entidad. De hecho, quieres una entidad diferente. ¿Cómo se ven las dos entidades? ¿Tienen los mismos campos? Podrías hacer algo como esto:
$oldEntity = $oldEntity;
$newEntity = new NewEntity();
$oldReflection = new /ReflectionObject($oldEntity);
$newReflection = new /ReflectionObject($newEntity);
foreach ($oldReflection->getProperties() as $property) {
if ($newReflection->hasProperty($property->getName())) {
$newProperty = $newReflection->getProperty($property->getName());
$newProperty->setAccessible(true);
$newProperty->setValue($newEntity, $property->getValue($oldEntity));
}
}
Esto no se ha probado, y puede tener un error o dos, pero esto debería permitir que todas las propiedades se copien de un objeto a otro (suponiendo que las propiedades tengan el mismo nombre en ambos objetos).
Estoy intentando clonar un objeto-entidad en una tabla diferente en Symfony 2 / Doctrine. ¿Alguna idea de cómo hacer esto?
Después de recuperar el objeto de la base de datos, puedo clonarlo así:
$newobject = clone $oldbject;
Esto me da un nuevo objeto, que puedo persistir como un nuevo registro en la misma tabla en la base de datos. En realidad, no quiero hacer esto. Quiero almacenar el objeto como está en una tabla diferente en la base de datos. Pero para hacer esto, tendría que cambiar la entidad matriz, ¿verdad? ¿Cómo lograr esto?