Typo3 Extbase 6.2中调度程序任务的更新
我是Extbase新手,我的思维方式仍然是数据库驱动的。我已经创建了一个扩展并添加了一个调度程序任务。现在我想使用调度程序任务来更新关系 记录在\Vendor\Extension\Domain\Repository\OriginalRepository中具有UID 1 我想将idendify设置为\Vendor\Extension\Domain\Model\Identify 我已经做的是,我创建了新的标识对象,如下所示:Typo3 Extbase 6.2中调度程序任务的更新,typo3,extbase,typo3-6.2.x,typo3-7.x,Typo3,Extbase,Typo3 6.2.x,Typo3 7.x,我是Extbase新手,我的思维方式仍然是数据库驱动的。我已经创建了一个扩展并添加了一个调度程序任务。现在我想使用调度程序任务来更新关系 记录在\Vendor\Extension\Domain\Repository\OriginalRepository中具有UID 1 我想将idendify设置为\Vendor\Extension\Domain\Model\Identify 我已经做的是,我创建了新的标识对象,如下所示: $objectManager = \TYPO3\CMS\Core\Util
$objectManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\ObjectManager');
$repository = $objectManager->get('Vendor\\Extension\\Domain\\Repository\\IdentifyRepository');
$new = new \Vendor\Extension\Domain\Model\Identify;
$new->setName('test');
$repository->add($new);
但现在如何将其添加到\Vendor\Extension\Domain\Repository\OriginalRepository
非常感谢您的帮助。如果您使用用于实现计划程序任务的,则可以使用依赖项注入。使初始化东西更容易。另外,您应该使用
ObjectManager::get()
创建一个新的标识
-实例-这样调用生命周期方法。我不确定我是否正确理解了这个问题,但我想您可以创建一个原始存储库的实例
,使用findByUid()
来获取原始
的实例,修改它,并使用原始存储库
实例的update()
方法保留更改。感谢您的回复。我曾经这样尝试过:$objectManager=\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Object\\objectManager')$repository=$objectManager->get('Vendor\\Extension\\Domain\\repository\\OriginalRepository')$repository->findByUid($row['uid'])$存储库->设置标识($new)$存储库->更新($query);但是我得到了一个错误:存储库不支持“setIdentify”方法。嗯,我认为您应该阅读一些关于extbase背后的概念,域对象是什么,存储库的用途等等。您可能需要对$repository->findByUid()
返回的结果调用setIdentify()
。