我在 Symfony2 项目中使用 KnpPaginatorBundle。当我尝试将 Doctrine 2 本机查询传递给分页器实例时,出现错误:
One of listeners must count and slice given target
有没有人为某些本机查询正确实现此示例?
在捆绑包的文档中,我看到了示例 (https://github.com/KnpLabs/KnpPaginatorBundle/blob/master/Resources/doc/custom_pagination_subscribers.md),但仅适用于文件系统,我不知道如何将其转换为数据库查询。
你能帮忙吗?
编辑
我的查询:
SELECT a.*, highest_rated_book.*
FROM authors a
LEFT JOIN (SELECT * FROM books b ORDER BY b.rate DESC) AS highest_rated_book
ON a.id = highest_rated_book.author_id
GROUP BY highest_rated_book.author_id
ORDER BY a.id;
和表格:
author (id, first_name, last_name)
books (id, title, rate, author_id)
不幸的是,该捆绑包不适用于本机查询。最好的解决方案(尽管它加载了许多不需要的行)是从查询中获取结果并对结果数组进行分页。
大约五分钟前我遇到了这个问题,参考:https://groups.google.com/forum/#!msg/symfony2/cgYHeKej7jc/y9dHX-qvTU4J