Отношения Doctrine, нарушающие множество функций при клонировании сущности

#php #symfony #doctrine-orm #doctrine #symfony-4.2

#php #symfony #doctrine-orm #доктрина #symfony-4.2

Вопрос:

Итак, я создаю объект doctrine, называемый exhibitions. Этот объект имеет отношения к двум другим объектам, оба являются отношениями ManyToMany. Это цитаты и сервисы.

Когда я клонирую exhibitor, он также клонирует все существующие предложения и сервисы с новыми идентификаторами.

Есть ли способ, которым я могу также предотвратить клонирование отношений, я просто хочу клонировать экспонента?

Кто-нибудь знает?

В настоящее время я просто делаю

 *   $newExhibitor = clone $exhibitor;
    $this->entityManager->getEntityManager()->persist($newExhibitor);
    $this->entityManager->getEntityManager()->flush();*
  

Ответ №1:

Зачем вы клонируете exhibitor? Вам нужно 2 идентичных экспонента в вашей базе данных? Вы пытались установить значение null перед сохранением?:

 $newExhibitor = clone $exhibitor;
$newExhibitor->setQuotes(null);
$newExhibitor->setServices(null);
$this->entityManager->getEntityManager()->persist($newExhibitor);
$this->entityManager->getEntityManager()->flush();
  

Комментарии:

1. Ах да, так просто, я этого не делал, а вместо этого использовал метод __clone() {}, который устанавливает свойство в null .. в значительной степени то, что вы предложили.