我试图将项目从一个EntityManager移至另一个(例如某种数据迁移),所以我想创建每个相关的Entity(如果不存在)并重用已有的实体。
我到处都阅读过使用clone $myEntity
的信息,但是那行不通。
$query = $fromEm->createQuery('SELECT u FROM AutocasionUserBundle:User u');
$iterable = $query->iterate();
foreach ($iterable as $user) {
$newUser = clone $user[0];
$fromEm->detach($user[0]);
$toEm->persist($newUser);
$toEm->flush();
}
我还尝试了分离$ newUser,在__clone()
魔术方法中取消了我的ID,但是我一直收到这样的错误:
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Undefined index: 000000002a39ac5d0000000077bcb768
在这种情况下,User
与名为Source
的实体有关系,我想保留这种关系,因为Source
ids存在于目标EntityManager中,因此User1->Source1
现在应该是User2->Source1
此处没有ID重置...