我有一个带有插件的扩展程序。我希望扩展的默认storagePid可以是在“数据集集合”字段中设置的默认值-就我所知,这仍然是标准设置。
我的setup.ts和constants.ts在任何地方都没有提到storagePid(我读到如果将它放在setup.ts文件中,它将覆盖默认的storagePid号)
运行插件时,控制器将调用存储库。该存储库会进行查询,我已经告诉它要尊重PID存储:
$query = $this->createQuery();
$query->getQuerySettings()->setRespectStoragePage(TRUE);
....
但是当我运行它时,出现以下错误。
Oops, an error occurred!
Missing storage page ids.
作为测试,我打印出了Controller认为storagePid应该是什么:
$configuration = $this->configurationManager->getConfiguration(\TYPO3\CMS\Extbase\Configuration\ConfigurationManagerInterface::CONFIGURATION_TYPE_FRAMEWORK);
print( "pluginpid = ".$configuration['persistence']['storagePid']);
...将打印出正确的数字。 因此,控制器知道什么是storagePid号,而存储库则不知道。 (并且上面的打印输出仅在控制器中有效,在回购中无效)
有人知道为什么我的存储库不知道/不使用我设置的storagePid吗?
答案 0 :(得分:1)
在constants.ts中添加persistence
部分,因此它可用于Template模块的槽常量编辑器。即:
plugin.tx_yourextension_yourplugin {
view {
# cat=plugin.tx_yourextension_yourplugin/file; type=string; label=Path to template root (FE)
templateRootPath = EXT:yourextension/Resources/Private/Templates/
# cat=plugin.tx_yourextension_yourplugin/file; type=string; label=Path to template partials (FE)
partialRootPath = EXT:yourextension/Resources/Private/Partials/
# cat=plugin.tx_yourextension_yourplugin/file; type=string; label=Path to template layouts (FE)
layoutRootPath = EXT:yourextension/Resources/Private/Layouts/
}
persistence {
# cat=plugin.tx_yourextension_yourplugin//a; type=string; label=Default storage PID
storagePid =
}
}
稍后在您的setup.ts中重写,方法是:
plugin.tx_yourextension_yourplugin {
view {
templateRootPaths.0 = EXT:{extension.shortExtensionKey}/Resources/Private/Templates/
templateRootPaths.1 = {$plugin.tx_yourextension_yourplugin.view.templateRootPath}
partialRootPaths.0 = EXT:yourextension/Resources/Private/Partials/
partialRootPaths.1 = {$plugin.tx_yourextension_yourplugin.view.partialRootPath}
layoutRootPaths.0 = EXT:tx_yourextension/Resources/Private/Layouts/
layoutRootPaths.1 = {$plugin.tx_yourextension_yourplugin.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_yourextension_yourplugin.persistence.storagePid}
#recursive = 1
}
}
提示零:始终清除缓存多次;)
提示1:使用Extension Builder引导您的新ext时,如果您在其中添加了FE插件,则应添加适当的常数和 setup 文件。
提示2:最好不要使用print()
\TYPO3\CMS\Extbase\Utility\DebuggerUtility::var_dump($debuggedData, 'Title');
当然,您可以将其导入控制器中
use TYPO3\CMS\Extbase\Utility\DebuggerUtility;