在做新东西之前,我希望我的scheduler-Task从数据库中删除所有条目,execute-function看起来像这样:
public function execute() {
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\CMS\Extbase\Object\ObjectManager');
$jobRepository = $objectManager->get('\TYPO3\MyExtension\Domain\Repository\JobRepository');
//clear DB
$jobRepository->removeAll();
(...)//insert new entries to DB
$objectManager->get('TYPO3\CMS\Extbase\Persistence\PersistenceManagerInterface')->persistAll();
return true;
}
将新条目插入数据库工作正常,但清除数据库根本不起作用。我做错了什么?
答案 0 :(得分:5)
由于removeAll()
调用了findAll()
:
public function removeAll() {
foreach ($this->findAll() AS $object) {
$this->remove($object);
}
}
最有可能findAll()
不返回任何对象。你有没有处理存储pid?禁用它或手动传递它。如果您从调度程序上下文中使用存储库的方法,那么它就不会存在。