You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Typo3 10.4版本Pagination widget分页功能失效问题排查

分页失效排查及修复方案

1. 确认控制器传递的数据集类型

  • Fluid 内置的f:widget.paginate组件仅支持对QueryResultInterface类型的对象做自动分页裁剪,如果你控制器中返回给视图的{isin}是已经执行查询后转成的数组/全量结果集合,分页组件无法自动做分片,就会全量展示所有结果。

控制器错误写法示例:

// 错误:提前执行查询取出全部结果转成数组
$isin = $documentRepository->findBySearchKeyword($keyword)->toArray();
$this->view->assign('isin', $isin);

控制器正确写法示例:

// 正确:直接返回未执行的查询结果对象给视图
$isin = $documentRepository->findBySearchKeyword($keyword);
$this->view->assign('isin', $isin);

2. 补充分页组件参数

  • 你当前配置未开启请求参数保留,分页跳转时会丢失搜索关键词参数,导致控制器每次返回全量搜索结果,在配置中补充addQueryString: 1即可:
<f:widget.paginate objects="{isin}" as="paginatedIsinDocuments" configuration="{itemsPerPage: 5, insertAbove: 0, insertBelow: 1, maximumNumberOfLinks: 100, addQueryString: 1, addQueryStringMethod: 'GET,POST'}">
    <div class="row mb-4">
        <f:for each="{paginatedIsinDocuments}" as="document">
            <div class="col-12 fs-highlighted">
                <a class="px-3 px-md-5 py-2" href="{document.file.originalResource.publicUrl}" target="_blank">
                    {document.file.originalResource.originalFile.name}
                    <i class="icon-download"></i>
                </a>
            </div>
        </f:for>
    </div>
</f:widget.paginate>

3. 高版本TYPO3适配

  • 如果你使用的是TYPO3 11及以上版本,f:widget.paginate已经被官方弃用,替换为新的f:pagination组件即可正常工作:
<f:pagination objects="{isin}" as="paginationResult" itemsPerPage="5">
    <div class="row mb-4">
        <f:for each="{paginationResult.paginatedItems}" as="document">
            <div class="col-12 fs-highlighted">
                <a class="px-3 px-md-5 py-2" href="{document.file.originalResource.publicUrl}" target="_blank">
                    {document.file.originalResource.originalFile.name}
                    <i class="icon-download"></i>
                </a>
            </div>
        </f:for>
    </div>
    <!-- 分页导航部分 -->
    <f:if condition="{paginationResult.numberOfPages} > 1">
        <f:for each="{paginationResult.pagination.pages}" as="page">
            <f:link.action action="yourActionName" arguments="{currentPage: page.number}">
                {page.number}
            </f:link.action>
        </f:for>
    </f:if>
</f:pagination>

内容的提问来源于stack exchange,提问作者Yusuf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 01:06:03