Я хочу добавить новый элемент фида при сохранении и обновлении объекта. Я пишу этот прослушиватель событий (postUpdate - то же самое):
public function postPersist(LifecycleEventArgs $args)
{
$entity = $args->getEntity();
$em = $args->getEntityManager();
if ($entity instanceof FeedItemInterface) {
$feed = new FeedEntity();
$feed->setTitle($entity->getFeedTitle());
$feed->setEntity($entity->getFeedEntityId());
$feed->setType($entity->getFeedType());
if($entity->isFeedTranslatable()) {
$feed->getEnTranslation()->setTitle($entity->getFeedTitle('en'));
}
$em->persist($feed);
$em->flush();
}
}
Но я получил
Нарушение ограничения целостности: 1062 Дублирующая запись '30 -2 'для ключа 'PRIMARY'
и в log a имеют две вставки:
INSERT INTO interview_scientificdirection (interview_id, sciencedirection_id) ЦЕННОСТИ (?,?) ([30,2]) INSERT INTO interview_scientificdirection (interview_id, sciencedirection_id) ЦЕННОСТИ (?,?) ([30,2])
sciencedirection - это таблица отношений Many to Many для сущности, которую мы хотим сохранить. Во внешнем приложении все работает нормально, но в Sonata Admin у меня возникла эта проблема: (