如果KnpPaginatorBundle可以处理基于2个(或更多)实体的分页,我在网上找不到任何地方。
说我的网站上有一个社交页面,我想列出上周有关给定主题的所有reddits和Twitter帖子。我一直在将这些数据剪贴在数据库中。
现在,我想通过分页捆绑包以方便的方式显示它。为此,我希望一方面合并reddit,另一方面合并Twitter的50/50实体集。
这有可能吗?如果不是,您建议如何对一组同时显示的2个不同实体进行分页?
请注意,两个实体都通过ManyToMany链接到另一个实体Topic,但是我不认为knppaginatorbundle可以基于关系实体处理分页(它可以使用offset和maxresult进行左联接吗?不确定)
谢谢!
答案 0 :(得分:1)
我在我的一个项目中尝试过类似的方法:
{
$em = $this->getDoctrine()->getManager();
$query = "SELECT f1,f2,f3 FROM table1
UNION
SELECT f1,f2,f3 FROM table2";
$statement = $em->getConnection()->prepare($query);
$statement->execute();
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$query, /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
10/*limit per page*/
);
// parameters to template
return $this->render('...', array('pagination' => $pagination));
}