我们可以使用 KnpPaginatorBundle 在 Symfony 4 中基于 2 个实体创建分页吗?
Can we create a pagination based on 2 entities in Symfony 4 with KnpPaginatorBundle?
如果 KnpPaginatorBundle 可以处理基于 2 个(或更多)实体的分页,我在网上找不到任何地方。
假设我的网站上有一个社交页面,我想在其中列出上周关于给定主题的所有 reddits 和 Twitter 帖子。我一直在删除这些数据并将其存储在我的数据库中。
现在我想用分页包以方便的方式显示它。为此,我想合并 50/50 一组实体,一方面来自 reddit,另一方面来自 twitter。
这可以吗?如果不是,您建议如何对一组显示在一起的 2 个不同实体进行分页?
请注意,这两个实体都通过 ManyToMany 链接到另一个实体主题,但我不认为 knppaginatorbundle 可以处理基于关系实体的分页(它可以使用 offset 和 maxresult 进行左连接吗?不确定)
谢谢!
我在我的一个项目中尝试过这样的事情:
{
$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));
}
如果 KnpPaginatorBundle 可以处理基于 2 个(或更多)实体的分页,我在网上找不到任何地方。
假设我的网站上有一个社交页面,我想在其中列出上周关于给定主题的所有 reddits 和 Twitter 帖子。我一直在删除这些数据并将其存储在我的数据库中。
现在我想用分页包以方便的方式显示它。为此,我想合并 50/50 一组实体,一方面来自 reddit,另一方面来自 twitter。
这可以吗?如果不是,您建议如何对一组显示在一起的 2 个不同实体进行分页?
请注意,这两个实体都通过 ManyToMany 链接到另一个实体主题,但我不认为 knppaginatorbundle 可以处理基于关系实体的分页(它可以使用 offset 和 maxresult 进行左连接吗?不确定)
谢谢!
我在我的一个项目中尝试过这样的事情:
{
$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));
}