Можем ли мы создать пагинацию на основе 2 сущностей в Symfony 4 с помощью KnpPaginatorBundle?

Я не смог найти где-нибудь в Интернете, если KnpPaginatorBundle может обрабатывать нумерацию страниц на основе 2 (или более) сущностей.

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

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

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

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

Спасибо!

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));
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]