Дублировать и поменять сущность на изменение - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть клиентская сущность. Клиент имеет отношение к адресу (ManyToOne). В идеале я хотел бы, чтобы адреса были неизменными, потому что они могут использоваться во многих местах, в результате, если клиент должен обновить свой адрес, я хочу вместо этого создать новую сущность.

Я пробовалиспользуя preUpdate прослушиватель событий, но я могу прослушивать только изменения моего адресного объекта, а не клиента, и я знаю, что вы не можете вносить изменения в ассоциации в этом типе прослушивателя событий.

Я также пыталсяonFlush прослушиватель событий, но из единицы работы, и getScheduledEntityUpdates(), и getScheduledCollectionUpdates() пусты.

Как я могу разрешить моему объекту адреса быть «readOnly», позволяя клиентам редактировать свой адрес?

Мне по сути нужно клонировать адрес, отменить изменения исходного адреса и затем заменить адрес на клиенте на новый.

Столбец на моем клиенте для адреса выглядит следующим образомэто:

/**
 * @ORM\ManyToOne(targetEntity="Address", cascade={"persist"})
 * @ORM\JoinColumn(name="address_id", referencedColumnName="id")
*/
private $address;
...