我有一个事件列表,我需要的是显示第1页上某个类别的前5个事件,然后在下一页显示所有事件(包括X类的前5个)。
所以我尝试做的是为我的结果创建2个extbase查询,并尝试合并那些2.但是使用toArray或ObjectStorage,我的分页模板中出现以下错误:
传递给TYPO3 \ CMS \ Fluid \ ViewHelpers \ Widget \ PaginateViewHelper :: render()的参数1必须实现接口TYPO3 \ CMS \ Extbase \ Persistence \ QueryResultInterface,TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage实例
那么如何合并2个QueryResults而不将它们转换为其他内容呢?或者还有另一种方法来实现我需要实现的目标吗?
我需要这个的一个小例子:
page 1 (the first 5 Events in Category X):
Event 4, Category X
Event 5, Category X
Event 8, Category X
Event 9, Category X
Event 10, Category X
page 2 (from now on everything is sorted by ID):
Event 1, Category A
Event 2, Category B
Event 3, Category B
Event 4, Category X
Evnet 5, Category X
page 3:
Event 6, Category A
Event 7, Category B
Event 8, Category X
Event 9, Category X
Event 10, Category X
在我的模板中使用f:widget.paginate。
答案 0 :(得分:1)
首先,当从第1页移到第2页时,分页的概念并不真正适用于此。用户会期待什么?当然不是经常性的结果?
更重要的是:除了TYPO3 7.6之外,PaginationViewHelper还支持除QueryResults之外的数组。但是有一个漂移的后端(我用它6.2)。
要解决您的问题,为什么不对单独的页面使用单独的查询,因为您的内容元素似乎具有语义上不同的目的?当使用自定义WidgetController时,您可以在任意条件下调整QueryResult以达到您的目的,例如某个页面(这是它的设计目的),如果您真的必须这样做,但我会建议不要这样做。