Я бегу Symfony 3 LTS. У меня есть подписчик, прослушивающий событие postUpdate
для того, чтобы войти в БД для всех действий с продуктами в моей базе данных. Ниже мой код:
use AppBundle\Entity\History;
public function getSubscribedEvents()
{
return [
Events::postUpdate,
];
}
public function postUpdate(LifecycleEventArgs $args)
{
if(!is_null($this->tokenStorage->getToken())) {
$user = $this->tokenStorage->getToken()->getUser();
$entity = $args->getObject();
$em = $args->getEntityManager();
if ($entity instanceof Product) {
$history = new History($user, "Product #5 has been updated");
$em->persist($history);
}
$em->flush();
}
}
Проблема: History
дважды вставляется в базу данных. Я не могу понять, почему. Я пытался удалить методы persist()
и / или flush()
, но ничего не было создано.
PS: между моими сущностями Product
и History
нет никакой связи. И это не должно быть. Моя проблема - только повторяющееся поведение.