I am getting this error:
[Symfony\Component\Debug\Exception\ContextErrorException] Notice: Undefined index: 000000000fa82729000000006e17190b
I have tried all the tips from this post.
My code is much simplier than the codes of other posters (asking about this problem).
$em = $this->getContainer()->get('doctrine')->getManager();
$pictureUrlRepository = new ProductItemPictureUrlRepository($em);
$pictures = $pictureUrlRepository->findAll();
for ($i = 0; $i < 4; ++$i) {
$productItem = $pictures[$i]->getProductItem();
dump($productItem->getId());
$fileName = 'file_' . $i;
$productItemPicture = new ProductItemPicture();
$productItemPicture->setProductItem($productItem);
$productItemPicture->setFile($fileName);
$productItemPicture->setPosition(1);
$productItemPicture->setSize(1000);
$productItemPicture->setWidth(1200);
$productItemPicture->setHeight(1000);
$em->persist($productItemPicture);
$em->flush();
$em->clear();
unset($productItemPicture);
}
To show you, that I have tried the advices from the link above, here's the more complex code with implemented tips (but the result is still the same):
$em = $this->getContainer()->get('doctrine')->getManager();
$pictureUrlRepository = new ProductItemPictureUrlRepository($em);
$pictures = $pictureUrlRepository->findAll();
foreach ($em->getEventManager()->getListeners() as $event => $listeners) {
foreach ($listeners as $listener) {
$em->getEventManager()->removeEventListener($event, $listener);
}
}
$batchSize = 2;
for ($i = 0; $i < 4; ++$i) {
$productItem = $pictures[$i]->getProductItem();
dump($productItem->getId());
$fileName = 'file_' . $i;
$productItemPicture = new ProductItemPicture();
$productItemPicture->setProductItem($productItem);
$productItemPicture->setFile($fileName);
$productItemPicture->setPosition(1);
$productItemPicture->setSize(1000);
$productItemPicture->setWidth(1200);
$productItemPicture->setHeight(1000);
$productItemPicture->setCreated(new \DateTime('20.1.2017'));
$productItemPicture->setUpdated(new \DateTime('20.1.2017'));
$em->persist($productItemPicture);
if (($i % $batchSize) === 0) {
$em->flush();
$em->clear();
}
}
$em->flush();
$em->clear();
Only when I comment (disable) $em->clear(); line, it works. What's the deal with not running the clear()? What can I expect when doing thousands of DB entries and not running clear()?