В нашей CMS, основанной на Doctrine 1.x, мы обычно выбираем соответствующую сущность, заполняем ее данными и затем запрашиваем $ entity-> isModified ()?(А если нет, то мы могли бы отправить отзыв пользователю - «Без изменений»)
В отношении кода замена isModified () выглядит примерно так:
public function isModified($entity) {
$metadata = $this->em->getClassMetadata(get_class($entity));
$uow = $this->em->getUnitOfWork();
$uow->computeChangeSet($metadata, $entity);
return $uow->isEntityScheduled($entity);
}
К сожалению, если мыдобавлены отношения M2M, поэтому M2M добавляется дважды при сохранении, вероятно, из-за того, что Doctrine затем вызывает uow-> computeChangeSets (), в результате чего вставка M2M ставится в очередь дважды.
Мыприбегли к тому, чтобы сделать что-то похожее на то, что предлагается в политике отслеживания уведомлений - по сути, перехватывая все наши сеттеры.
ПРИМЕЧАНИЕ Этот ответ был отправлен под вопросом OP Mark