summoner2015
@summoner2015
Backend-разработчик

Что может значить этот баг в пагинации?

Добрый день всем.
Пытаюсь организовать вывод списка с пагинацией. Использую плагин https://packagist.org/packages/pagerfanta/pagerfanta. Код выглядит вот так:
public function list($page = 1, $limit = 1)
{
    $pager = new Pagerfanta(new DoctrineORMAdapter($this->getDoctrine()
        ->getRepository(User::class)
        ->createQueryBuilder('u')
        ->select('u.id', 'u.username', 'u.email', 'u.isActive')
        ->orderBy('u.username', 'ASC')));
    $pager->setMaxPerPage($limit)->setCurrentPage($page);

    dump($pager->getCurrentPageResults());

    return $this->render('pages/admin/users/list.html.twig', ['users' => $pager]);
}

Ошибка вылезает вот в этом месте:
dump($pager->getCurrentPageResults());
и выглядит вот так:
RuntimeException:
The Paginator does not support Queries which only yield ScalarResults.
  • Вопрос задан
  • 63 просмотра
Пригласить эксперта
Ответы на вопрос 1
prototype_denis
@prototype_denis
Symfony
Используйте другой адаптер, например DoctrineDbalAdapter с небольшим изменением кода.

В вашем примере "частичная" выборка объекта, а именно только несколько свойств класса User. Именно по этому результатом будет не объект, а массив. Pagefanta вам именно это и говорит.

Собственно или выбирайте полные объекты, или неполные массивы.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы