我知道这是来自Symfony2 / Doctrine2 throwing index error when flushing the entity manager的旧问题,但错误仍然存在,我不知道该怎么做:
我有一个Symfony-Command-Script,它在数据库中插入实体。我正在使用
PHP版本5.6 symfony / symfony(v2.8.8) doctrine / orm(v2.5.4),
代码的重要部分是:
$em = $this->getContainer()->get('doctrine')->getManager();
$em->getConnection()->getConfiguration()->setSQLLogger(null);
// remove all listeners
foreach ($em->getEventManager()->getListeners() as $event => $listeners) {
foreach ($listeners as $listener) {
$em->getEventManager()->removeEventListener($event, $listener);
}
}
.....
foreach($importdateien as $importdatei) {
$em_batchSize = 0;
...
$em->persist($artikel); // article is an Symfony-Entity
$em_batchSize ++;
if (($em_batchSize % 20) === 0) {
$em->flush();
$em->clear(); // Detaches all objects from Doctrine!
$this->getContainer()->get('doctrine')->resetManager();
$em = $this->getContainer()->get('doctrine')->getManager();
}
}
正好在20次插入后我得到了错误:
[ErrorException] 未定义索引:000000004c2a3e220000000066122f03
循环中没有删除或更新语句。有简单的插入
我想我已经阅读了几个可能解决方案的页面,但没有任何效果。
模式已经过验证,没有错误。