Typo3:PersistenceManager persistAll()在add()对象到存储库后创建空数据库记录

问题描述 投票:0回答:1

我正在尝试在我的数据库中安全对象,因此我正在使用PersistenceManager类。

在调用persistAll()之前,我正在向我的存储库添加一个对象。

    $newChecklist = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('foo\\bar\\Domain\\Model\\Checklist');
    $newChecklist->setNameDE('de');
    $newChecklist->setNameEN('en');
    $newChecklist->setAuthor('someGuy');
    //DebuggerUtility::var_dump($newChecklist); //returns object with correct attribute values
    $this->checklistRepository->add($newChecklist);

之后我就像这样使用PersistenceManager:

$persistenceManager = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager');
$persistenceManager->persistAll();

但是这段代码只生成一个空的数据库记录。

我的语法中找不到任何错误。我的文件名都正确设置,Model => Checklist,Repository => ChecklistRepository,Controller => ChecklistController

有谁知道如何解决这个问题?

提前致谢

php typo3-8.x
1个回答
0
投票

此代码适用于我的BE模块:

class MyController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
    /**
     * myRepository
     *
     * @var \VENDOR\Extension\Domain\Repository\AddressRepository
     * @inject
     */
    protected $addressRepository = null;

    function import() {
        $persistenceManager = $this->objectManager->get("TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager");
        ...
        $record = GeneralUtility::makeInstance('VENDOR\\Extension\\Domain\\Model\\Address');
        $record->setTitle('The Title');
        $record->setPid(123);
        ...

        $this->myRepository->add($record);
        $persistenceManager->persistAll();
        ...
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.