Добавление данных в пагинатор (knppaginatorbundle, Symfony)


Я использую KnpPaginatorBundle.

Допустим, у меня есть что-то вроде этого:

$em = $this->getDoctrine()->getEntityManager();
$qb = $em->createQueryBuilder()
   ->select('p.id, p.name, p.description)
   ->from('My\Bundle\Entity\Post', 'p')
   ->where('p.unread is NULL')                
$query = $qb->getQuery();
$posts = $query->getResult();

И мой пагинатор:

$paginator  = $this->get('knp_paginator');
$posts = $paginator->paginate(
   $posts,
   $request->query->getInt('page', 1),
   3 
);

Все работает очень хорошо, но Я хотел бы добавить свои собственные данные в $posts по каждому.

Мой пример не работает:

foreach ($posts as $key => $value) {
   $posts [$key]['filterPath'] = 'example';
}

Я получаю ошибку Notice: Indirect modification of overloaded element of Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination has no effect

Как я могу это решить? С уважением

Author: Gemmi, 2015-09-26

1 answers

Попробуйте что-нибудь подобное

foreach ($posts as $key => $value) {
$tab=$posts[$key];
$tab=['filterPath'] = 'example';
$posts['key']=$tab;
}

Насколько я помню, $posts не является обычным массивом, и к нему нельзя получить прямой доступ

 2
Author: Michał G, 2015-09-27 17:51:56