繁体   English   中英

如何将数据库表数据从扩展加载到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)。 您仅在“记录存储页面”-字段中选择了一个。 仅当您将存储库设置为已删除,隐藏或扩展(开始;停止)条目时,才会显示该条目。

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

plugin.tx_myext.persistence.storagePid = 10

与扩展名中的所有条目相比,存储在带有uid 31的页面中并从该页面显示。

查看phpMyAdmin屏幕快照,基本问题似乎是现有记录位于不同的页面上。 默认情况下,仅显示所选页面/文件夹中的记录(示例中的UID 10)。 其他记录在第31和11页上。

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

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();
    }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM