如何将 DB-Table-Data 从扩展加载到 Typo3 6.2 中的后端记录中

How to load DB-Table-Data from an Extension into the Backend-Records in Typo3 6.2

我用实体 appointments 创建了一个扩展,并希望它在前端和后端显示所有这些。数据库中已经有几条记录 - 但如何显示它们?

这是我目前所做的: 我已经选择了我的分机应该从中获取所有约会的文件夹: 通常我的约会是在前端创建的,但我也可以在后端手动添加它们:

后台添加成功: 它现在显示在前端:

但问题是:数据库有多个条目,其他的没有被隐藏或删除!!现在只显示我创建的那个...我怎样才能让 Typo3 自动将数据库中的所有内容加载到我的约会数据文件夹中或以另一种方式达到我的目标?

您在屏幕截图上的记录在三个不同的页面上 (31,10,11)。您只在 "Record Storage Page"- 字段中选择了一个。删除、隐藏或扩展 (start;stopp) 的条目仅在您将存储库设置为这样做时才会显示。

扩展构建器的默认行为不使用记录存储页面字段。要使用一个特定页面,请设置存储常量 pid:

plugin.tx_myext.persistence.storagePid = 10

扩展中的所有条目都存储在 uid 为 31 的页面中并从中显示。

查看 phpMyAdmin 屏幕截图,基本问题似乎是现有记录位于不同的页面上。默认情况下,只会显示所选 page/folder 中的记录(在您的示例中为 UID 10)。其他记录在第31页和第11页。

如果您的前端插件使用 Extbase,您可以调整查询设置以忽略存储页面 (pid) 并显示存储库中的所有记录 class:

namespace MyVendor\MyExtKey\Domain\Repository;
class ExampleRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {
    // Repository wide settings
    public function initializeObject() {
        $querySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings::class);
        $querySettings->setRespectStoragePage(FALSE);
        $this->setDefaultQuerySettings($querySettings);
    }

    // Example for adjusting a single query
    public function findEverything() {
        $query = $this->createQuery();
        $query->getQuerySettings()->setRespectStoragePage(FALSE);
        return $query->execute();
    }
}

如果您在前端创建记录,则需要注意刷新列表视图的页面缓存(或在第一次尝试时将其取消缓存),以便显示新条目。否则会显示缓存页面,其中将在几个小时内不包含最新条目(取决于您的缓存设置)。