В основном вам нужно отсоединить сущность от менеджера сущностей, а затем сохранить ее снова, что заставит ее вставляться как новую.
$person = $order->getReceiver();
$em->detach($person);
$em->persist($person);
$order->setReceiver($person);
Теперь проблема в том, что вы должны сделать толькочто если форма собирается изменить один или другой независимо.
Я думаю, вы могли бы сделать это всегда перед привязкой формы, а затем, если вы видите, что и получатель и заказчик содержат одни и те же данные, вы отбрасываетеполучатель (не забудьте удалить или хотя бы отсоединить его от $em
) и снова назначить получателя в качестве получателя.
Надеюсь, это имеет смысл.Будьте осторожны, в противном случае вы получите тонны дублированных и осиротевших данных в вашей базе данных, я думаю.
Вы можете прочитать больше о detach в доктрине документов .