TYPO3 11.5:分页器paginatedItems显示全部而非当前页数据
解决思路
- 确认
$allItems类型:必须是QueryResult对象,不能是已经通过toArray()转换后的数组。如果Repository方法返回的是数组,分页器无法应用limit/offset逻辑,会直接返回全部数据。确保你的Repository查询返回的是未执行的QueryResult(比如不要在Repository里用->execute()->toArray(),而是返回->execute()的结果)。 - 检查
$currentPage的正确性:确保该变量是合法的正整数,比如从前端请求中正确获取(如$currentPage = (int)$this->request->getArgument('currentPage') ?: 1)。如果$currentPage为0或非有效数值,分页器可能会跳过分页逻辑,返回全部数据。 - 避免修改原QueryResult:在创建
QueryResultPaginator实例后,不要对$allItems执行额外的操作(如再次调用->toArray()或修改查询条件),否则会破坏分页器的内部状态。 - 排查扩展配置冲突:检查numbered_pagination的TypoScript配置,是否存在
plugin.tx_yourextension.settings.pagination.itemsPerPage这类配置项,覆盖了你代码中设置的$itemsPerPage = 20。如果有,要么修改配置值,要么确保代码中设置的优先级更高。
内容的提问来源于stack exchange,提问作者Largo
相关产品推荐
相关产品推荐

