我正在开发一个扩展程序,允许管理员将内容保存到数据库中。
我希望扩展的每个实例都应该在数据库中拥有它自己的Id。 有没有办法在扩展php中获取tt_content uid(我猜是扩展实例Id)。
答案 0 :(得分:11)
您获取数组中的所有tt_content数据:
$this->cObj->data
即:
$uidOfCE = $this->cObj->data['uid'];
如果你正在使用Extbase,你需要先获取内容对象,即:
$this->contentObj = $this->configurationManager->getContentObject();
debug($this->contentObj->data, "current tt_content's data");
答案 1 :(得分:0)
$ contentId是typo3后端的内容ID
$content_rec = $GLOBALS["TYPO3_DB"]->exec_SELECTgetrows('header,bodytext','tt_content','uid='.$contentId);
$this->markerArray['###content###'] = $content_rec[0]['bodytext'];
答案 2 :(得分:0)
这就是方法(在TYPO3 9.5.4中测试)
这将返回整个 HTML 内容,您可以直接呈现
$conf = [
'tables' => 'tt_content',
'source' => $uid, //uid of tt_content
'dontCheckPid' => 1
];
$html = $GLOBALS['TSFE']->cObj->cObjGetSingle('RECORDS', $conf);
答案 3 :(得分:0)
要获得答案并了解插件uid的更新效果,可以调试\TYPO3\CMS\Core\Utility\DebugUtility::debug($this->configurationManager->getContentObject()->data['uid'], 'parameter');
如果未完成,则调试不会显示uid
,因为configurationManager
和contentObject
使用延迟加载。
这可以通过TYPO3 8.7进行测试,