- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个使用 2015 年数据的扩展。2016 年将有相同的游戏,没有结构变化。在扩展中,我希望有一个开关来更改 extbase 从中获取数据的数据库。
有什么意见可以实现这一点吗?
谢谢。
最佳答案
之前给出的关于“使用外部数据源”的答案只是解决了同一数据库内的映射方面,以及作为领域驱动设计上下文中对象关系映射的变体的单表继承。
如果想要使用不同的数据库连接甚至不同的 DBMS,对于给定的 Extbase 场景存在三种可能性。
使用允许配置额外连接的数据库抽象层
dbal
configure替代连接并在源代码中使用它 - 请参阅 DBAL documentation有关详细信息 - 如果使用不同的 DBMS,如 Oracle 或 PostgreSQL,但如果两者都应该可以正常工作数据库基于 MySQL(或 MariaDB)Connection
对象,分别使用ConnectionPool
- 请参阅 TYPO3 documentation on Doctrine DBAL为了详情使用与第二个数据库名称不同的VIEW
VIEW
并为表提供当前数据库中的不同表名 - 这是一种解决方法,但确保在第二个中对表进行修改数据库自动反射(reflect)到数据库 VIEW
VIEW
重载类 Typo3DbBackend
作为最后的手段
该类负责实际执行数据库查询Extbase应用程序上下文
在那里你可以集成一个策略模式来使用默认实现或使用您自定义的第二个数据库连接重载可以通过 ext_localconf.php
定义,例如
$extbaseObjectContainer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Object\Container\Container::class);
$extbaseObjectContainer->registerImplementation(\TYPO3\CMS\Extbase\Persistence\Generic\Storage\BackendInterface::class, \TYPO3\CMS\Extbase\Persistence\Generic\Storage\Typo3DbBackend::class);
关于extbase下如何切换数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071454/
在我的 extbase/fluid 项目中,除了创建、删除、列表等标准操作之外,我还想创建存储在存储库中的模型类对象的副本。使用 findall(),所有对象都显示在列表中,并且相应的操作(例如删除、
创建模型并将其添加到存储库后,我希望拥有用于不同目的的新 ID(创建邮件、更新 Extbase 世界之外的其他字段) $page = t3lib_div::makeInstance('Tx_MyExt
我就是不能 findAll()即使我能够通过 findByUid() 访问特定记录,也可以返回任何内容。 我已记录(并尝试解决/设置)typoscript solution和 record stora
如何在extbase扩展 Controller 中获取当前页面的uri?如果我需要通过电子邮件发送当前 uri 或将其保存到数据库以供以后使用或统计。 最佳答案 您可以使用这一行: $this->ur
我需要获取实际的“一般记录存储页面 ID”。我发现了以下代码片段,但即使在页面上设置了 storagePid,该变量也是空的。 $config = $this->configurationManage
如何在前端获取隐藏记录?想要获取隐藏记录,然后将隐藏更改为 0。 最佳答案 您可以在存储库中为单一方法进行此设置: namespace Vendor\ExtensionName\Domain\Repo
当我的 Extbase 域对象之一从 TYPO3 后端的 ListView 中删除时,我想执行一些单独的代码。 认为它可以通过覆盖相应存储库中的 remove( $o ) 方法来工作,例如 publ
我已经扩展了 pages 表,现在我想使用名为“Tags”的域对象中的一些数据。 所以我在 /Configuration/TypoScript/setup.txt 中尝试了以下内容: plugin.m
我有一个域对象 Foo,它与域对象 Bar 有 1:n 的关系。 有两个主要用例,我需要让所有 foo 匹配某个标准。在情况 A 中,我关心连接到每个 foo 的条,在情况 B 中,我不关心。有相当多
我有自己的扩展,它有 Controller 和两个 Action :listAction 和 showAction。 问题:我可以在同一个页面显示两个 Action 吗? 在特定页面上,我用自己的插件
我正在尝试使用三个额外的日期(时间戳)字段来扩展扩展(新闻),并希望在我的(新闻)流体模板中调用这些字段。 到目前为止,我已经连接了所有内容,我可以在后端看到我的额外字段,而无需选择额外类型 - 我已
我有自己的扩展,它有 Controller 和两个 Action :listAction 和 showAction。 问题:我可以在同一个页面显示两个 Action 吗? 在特定页面上,我用自己的插件
我正在尝试创建一个对象,但值没有存储到数据库中。这是在“索引”操作上完成的,因为插件是通过 TypoScript 插入的,实际上并不创建输出。所以在调用 Action 时没有给出对象,这就是为什么我自
是否可以比较查询 api 中的两个数据库字段?例如,我想比较 tstamp 和 crdate 字段,例如: SELECT * FROM tt_content WHERE tstamp > crdate
在我的 extbase Controller 操作中,我想在上传文件后重定向到另一个 Controller /操作,因此我调用 $this->redirect('index', 'Download',
我有一个带有两个插件的扩展,我需要从这两个插件访问 getVars。 $this->request->getArguments(); 当然,上面的代码只给了我当前插件中的变量。 有人知道我如何从不同的
我尝试将事件的开始日期与当前日期进行比较,以便仅显示下一个事件。这是我在 eventRepository 中的尝试: public function findNext() { $query =
我正在使用 TYPO3 7.6.11 和 indexed_search 7.6.0。 我将 extbase 插件用于 indexed_search 并在输出中转义 HTML 标签以标记搜索词。例如,当
刚开始使用第一个 extbase 扩展。在 localconf 中,我添加了以下操作:“列表、新建、显示、创建、编辑”。 默认是“创建”重定向到没有参数的“列表”,并且在创建扩展后就可以正常工作。 $
我有一个扩展,我想在其中包含一些过滤器,我知道我可以使用 findBy 过滤我的 listAction() 显示的结果>. 我测试了它,它是这样工作的: $cars = $this->carRepos
我是一名优秀的程序员,十分优秀!