エンティティの永続化と更新に新しいフィードアイテムを追加したい。私はこのイベントリスナーを書きます(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」
ログには2つの挿入があります。
INSERT INTOインタビュー_scientificdirection(interview_id、scientificdirection_id)VALUES(?、?)([30,2])INSERT INTOインタビュー_scientificdirection(interview_id、scientificdirection_id)VALUES(?、?)([30,2])
科学的方向性は、私たちが維持したいエンティティの多対多の関係テーブルです。フロントエンドアプリケーションではすべてが正常に機能しますが、SonataAdminではこの問題が発生しました:(