Я хочу обновить некоторые объекты Extbase в задаче планировщика. Я звоню в хранилище, чтобы получить все объекты. Затем я устанавливаю одно свойство этого объекта и пытаюсь обновить его.
Это бросает мне это исключение
Объект типа "FFPI \ FfpiNodeUpdates \ Domain \ Model \ Node", данный для обновления, должен быть уже сохранен, но является новым.
производитель / typo3 / К / typo3 / sysext / Extbase / Классы / Постоянство / Generic / PersistenceManager.php: 237
след:
0: TYPO3 \ CMS \ Extbase \ Persistence \ Generic \ PersistenceManager
1: TYPO3 \ CMS \ Extbase \ Persistence \ Repository
2: FFPI \ FfpiNodeUpdates \ Task \ NotificationTask
3: FFPI \ FfpiNodeUpdates \ Task \ NotificationTask
4: TYPO3 \ CMS \ Scheduler \ Scheduler
5: TYPO3 \ CMS \ Scheduler \ Controller \ SchedulerModuleController
...
мой код можно сократить до этого
$nodes = $this->nodeRepository->findAll()->toArray();
foreach ($nodes as $node){
$this->myUpdateFunction($node);
}
private function myUpdateFunction(Node $node)
{
$node->setOnline(true);
$this->nodeRepository->update($node); // <- Gives the exception
}
Он работал нормально в 7.6, но доза больше не работает в 8.7
Я пытался получить хранилище с помощью
* Инъекция зависимости (доза не работает вообще)
* GeneralUtility :: makeInstance () (я получаю репозиторий, но есть исключение)
* objectManager-> get () (я получаю репозиторий, но есть исключение)
Обновление:
У меня эта проблема тоже в версии 9.5