【问题标题】:Can we create a pagination based on 2 entities in Symfony 4 with KnpPaginatorBundle?我们可以使用 KnpPaginatorBundle 基于 Symfony 4 中的 2 个实体创建分页吗?
【发布时间】:2019-01-11 05:39:37
【问题描述】:

如果 KnpPaginatorBundle 可以处理基于 2 个(或更多)实体的分页,我在网络上找不到任何地方。

假设我的网站上有一个社交页面,我想在其中列出上周关于给定主题的所有 reddit 和 Twitter 帖子。我一直在报废这些数据并将其存储在我的数据库中。

现在我想用分页包以一种方便的方式显示它。为此,我想以 50/50 的比例合并一组来自 reddit 和 twitter 的实体。

这可能吗?如果不是,您会建议如何对一起显示的 2 个不同实体进行分页?

请注意,这两个实体都通过 ManyToMany 链接到另一个实体主题,但我认为 knppaginatorbundle 不能处理基于关系实体的分页(它可以使用 offset 和 maxresult 进行左连接吗?不确定)

谢谢!

【问题讨论】:

  • 我最终构建了自己的分页系统,但如果有人正在寻找这个问题的答案,我会接受 @Amira 的回答。感谢阿米拉的帮助。
  • 不客气。这只是我在一个项目中使用的一个技巧。

标签: php symfony pagination symfony4 knppaginator


【解决方案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));
    }

【讨论】:

  • 天才。谢谢
猜你喜欢
  • 2019-01-26
  • 1970-01-01
  • 2012-04-22
  • 2022-01-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-29
相关资源
最近更新 更多