Можем ли мы создать разбиение на страницы на основе двух сущностей в Symfony 4 с KnpPaginatorBundle?

Я не мог найти нигде в Интернете, может ли KnpPaginatorBundle обрабатывать разбиение на страницы на основе 2 (или более) объектов.

Скажем, у меня есть социальная страница на моем веб-сайте, где я хотел бы перечислить все сообщения Reddit и Twitter за прошлую неделю по заданной теме. Я собирал и хранил эти данные в своей БД.

Теперь я хотел бы отобразить его удобным образом с помощью связки пагинации. Для этого я хотел бы объединить 50/50 набор объектов, с одной стороны, Reddit, а с другой стороны, twitter.

Возможно ли это сделать? Если нет, что бы вы рекомендовали сделать для разбивки на страницы набора из двух разных сущностей, отображаемых вместе?

Обратите внимание, что обе сущности связаны с другой сущностью. Тема с ManyToMany, но я не думаю, что knppaginatorbundle может обрабатывать разбиение на страницы на основе реляционной сущности (может ли он выполнять левое соединение со смещением и maxresult? Не уверен)

Спасибо!

В итоге я создал свою собственную систему разбивки на страницы, но я приму ответ @Amira, если когда-нибудь кто-то будет искать ответ по этому поводу. Спасибо Амире за вашу помощь.

Miles M. 11.08.2018 16:32

Пожалуйста, это просто трюк, который я применил в одном из своих проектов.

Amira Bedhiafi 23.09.2018 10:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
2
384
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 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));
    }

Гений. Спасибо

Miles M. 06.08.2018 14:15

Другие вопросы по теме