我已经使用实体appointments
创建了一个扩展,并希望它在前端和后端显示所有这些扩展。数据库中已有一些记录 - 但我该如何显示它们?
这是我到目前为止所做的事情:
我选择了一个文件夹,我的分机应该从那里获得所有约会:
通常我的约会是在前端创建的,但我也可以在后端手动添加它们:
但问题是:数据库有多个条目而其他条目没有隐藏或删除!!现在只显示我创建的那个...如何让Typo3自动将数据库中的所有内容加载到我的约会数据文件夹中或以另一种方式达到我的目标?
答案 0 :(得分:2)
截图上的记录在三个不同的页面上(31,10,11)。您只在“记录存储页面”中选择了一个 - 字段。只有在您设置存储库时,才会显示已删除,隐藏或扩展(开始;停止)条目。
扩展构建器的默认行为不使用记录存储页面字段。要使用一个特定页面,请为存储pid设置常量:
plugin.tx_myext.persistence.storagePid = 10
与扩展程序中的所有条目相比,存储在页面中并使用uid 31显示。
答案 1 :(得分:2)
查看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();
}
}
如果您在前端创建记录,则需要注意刷新列表视图的页面缓存(或在第一次尝试时将其隐藏),以便显示新条目。否则,将显示缓存页面,该页面将在几个小时内不包含最新条目(取决于您的缓存设置)。