Добавить данные в пагинатор (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.

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

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

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

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


person Gemmi    schedule 26.09.2015    source источник


Ответы (1)


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

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

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

person Michał G    schedule 27.09.2015