gpt4 book ai didi

php - Symfony 2 - 将实体克隆到不同的表

转载 作者:可可西里 更新时间:2023-11-01 13:16:23 25 4
gpt4 key购买 nike

我正在尝试将一个实体对象克隆到 Symfony 2/Doctrine 中的另一个表。知道如何做到这一点吗?

从数据库中检索对象后,我可以像这样克隆它:

$newobject = clone $oldbject;

这为我提供了一个新对象,我可以将其作为新记录保存到数据库中的同一个表中。其实我不想这样做。我想将对象原样存储到数据库中的不同表中。但要做到这一点,我必须更改父实体,对吗?如何实现?

最佳答案

但是你并不是真的克隆一个实体。事实上,你想要一个不同的实体。这两个实体是什么样子的?他们有相同的领域吗?你可以这样做:

$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));
}
}

这是未经测试的 - 可能会有一两个错误,但这应该允许将所有属性从一个对象复制到另一个对象(假设属性在两个对象上具有相同的名称)。

关于php - Symfony 2 - 将实体克隆到不同的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14216285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com