根据the onFlush event documentation,以下代码有效:
foreach ($uow->getScheduledEntityInsertions() as $entity) {
if ($entity instanceof Site) {
$siteStatus = new SiteStatusHistory();
$siteStatus->setSite($entity);
$siteStatus->setStatus($entity->getBillingStatus());
$manager->persist($siteStatus);
$uow->computeChangeSet($manager->getClassMetadata(SiteStatusHistory::class), $siteStatus);
}
}
当使用doctrine 2.5时一切都很好,但在切换到2.6.1之后我有一个错误:
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'site_id' cannot be null (Doctrine\DBAL\Exception\NotNullConstraintViolationException)
我已经在StackOverflow / Google上搜索了,但我找不到任何东西,因为最近刚发布了Doctrine 2.6。
我很快检查了发行说明(2.6和2.6.1),但我也没有。
编辑:问题仅出现在behat测试中,而不是dev或prod env