我想将来自后端的内容存储在另一个数据库中。TYPO3将后端内容保存在另一个数据库中
所以我们可以说我有这个在我的后端:
我如何保存的值(例如在图片中的浮点值),在另一个数据库?
我之所以需要这个功能,是因为我有另一个数据库,它正在用于一些动态内容加载到我的网站用PHP。
希望有人有一个想法,能不能帮我:)
我想将来自后端的内容存储在另一个数据库中。TYPO3将后端内容保存在另一个数据库中
所以我们可以说我有这个在我的后端:
我如何保存的值(例如在图片中的浮点值),在另一个数据库?
我之所以需要这个功能,是因为我有另一个数据库,它正在用于一些动态内容加载到我的网站用PHP。
希望有人有一个想法,能不能帮我:)
有几种方法可以实现这一点。我只是假设你想在TYPO3的tt_content
表和不同的数据库甚至不同的存储引擎(网络服务,文件系统,...)中的某个外部表之间创建关系。
在这种情况下,您可以通过其他属性扩展tt_content
表的TCA
,我们将其称为external_reference
。后端表单应该提供一个额外的选择器字段,允许选择外部数据源的实体。
以下示例假定您的扩展名为my_extension
,必须将其调整为实际命名。
您可以通过将以下配置到您的扩展文件夹中typo3conf/ext/my_extension/Configuration/TCA/Overrides/tt_content.php
这样做:
<?php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
'tt_content',
[
'external_reference' => [
'exclude' => 1,
'label' => 'External Source',
'config' => [
'type' => 'select',
'items' => [
['-- none --', 0]
],
'itemsProcFunc' => ExternalReferenceSelection::class . '->render',
'default' => 0,
]
],
]
);
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
'tt_content',
'external_reference'
);
然后,你必须实现选择和从外部源,例如像检索
<?php
class ExternalReferenceSelection
{
public function render(array $parameters)
{
$references = ExternalReferenceRepository::instance()->findAll();
foreach ($references as $reference) {
$parameters['items'][] = [
$reference->getTitle(),
$reference->getIdentifier()
];
}
}
}
为了能够坚持选择的参考,你必须在typo3conf/ext/my_extension/ext_tables.sql
#
# Table structure for table 'tt_content'
#
CREATE TABLE tt_content (
external_reference int(11) unsigned DEFAULT '0' NOT NULL
);
数据库架构更新由TYPO3调用数据库分析以及延长tt_content
SQL模式安装工具,或通过(重新)在扩展管理器中安装扩展。
我会使用一个钩子,与如果事情是在TYPO3后台更改或我会用它触发值更新国外数据库调度程序任务/命令控制器,由CLI触发并运行所有x分钟并更改数据库中的值。
还应该注意的是,您只能选择在另一个数据库中拥有完整的表格,但不能只是某些字段。 – pgampe
谢谢你的回答:)有人获得了一些链接到一些“教程”呢?还有可能,将数据从db加载到TYPO3后端?因此,如果值在其他地方更改,它会自动更新后端 – Joggal