Вставка доктрины в событие postPersist

Я хочу добавить новый элемент фида в сущность, сохранить и обновить. Я пишу этот прослушиватель событий (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' для ключа 'ПЕРВИЧНЫЙ'

и в журнале есть две вставки:

INSERT INTO интервью _научное направление (интервью _id, научное направление _id )ЗНАЧЕНИЯ (?, ? )([30,2] )ВСТАВИТЬ В интервью _научное направление (интервью _id, научное направление _id )ЗНАЧЕНИЯ (?, ? )([30,2])

научное направление — это таблица отношений «многие ко многим» для объекта, который мы хотим сохранить. Во внешнем приложении все работает нормально, но в Sonata Admin у меня возникла эта проблема:(

16
задан Darryl Hein 6 January 2016 в 14:34
поделиться