Клон Доктрина Entity сохранить отношения - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь переместить элементы из одного 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 здесь нет сброса идентификатора ...

...