Doktryna wstawiająca w zdarzenie postPersist
Chcę, aby dodawano nowy element kanału na obiekcie i aktualizowano. Piszę ten detektor zdarzeń (postUpdate jest taki sam):
<code>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(); } } </code>
Ale mam
Naruszenie ograniczenia integralności: 1062 Zduplikowany wpis „30 -2” dla klucza „PODSTAWOWY”
aw logu mają dwie wstawki:
INSERT INTO interview_scientificdirection (interview_id, scientificdirection_id) WARTOŚCI (?,?) ([30,2]) INSERT INTO interview_scientificdirection (interview_id, scientificdirection_id) WARTOŚCI (?,?) ([30,2])
Scientificdirection ma wiele do wielu tabel relacji dla bytu, co chcemy utrzymać. W aplikacji frontendowej wszystko działa dobrze, ale w Sonacie Admin mam ten problem :(