Я пытаюсь переместить элементы из одного EntityManager в другой (например, какой-то перенос данных), поэтому я хочу создать каждый связанный объект, если он не существует, и повторно использовать те, которые существуют.
Я везде читал, чтобы использовать 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()
магическом методе, но продолжаю получатьошибки вроде этого:
[Symfony\Component\Debug\Exception\ContextErrorException]
Notice: Undefined index: 000000002a39ac5d0000000077bcb768
В этом случае User
имеет отношение к сущности с именем Source
Я хочу сохранить это отношение, потому что Source
идентификаторы существуют в моем целевом EntityManager, поэтому User1->Source1
теперь должно быть User2->Source1
здесь нет сброса идентификатора ...