我想在实体上添加新的 Feed 项并持续更新。我写了这个事件监听器(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 键 'PRIMARY' 的重复条目 '30-2'
并且在日志 a 中有两个插入:
INSERT INTO interview_scientificdirection (interview_id, sciencedirection_id) VALUES (?, ?) ([30,2]) INSERT INTO interview_scientificdirection (interview_id, sciencedirection_id) VALUES (?, ?) ([30,2])
sciencedirection 是我们想要持久化的实体的多对多关系表。在前端应用程序中一切正常,但在 Sonata Admin 中我遇到了这个问题:(