Używam
https://github.com/KnpLabs/KnpPaginatorBundle paginator udało mi się zainstalować pojawia się jednak dziwny problem, taki że nie mogę odczytać parametru przesłanego z tablicy $_GET
Sama paginacja wydaje się działać bo jak zmienię domyślnie wyświetlaną stronę pojawia się poprawny wpis, tak samo dla limitu wyświetlanych stron.
Kod kontrolera:
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class PressController extends Controller
public function newsAction(Request $request)
{
$articles = $this
->getDoctrine()
->getEntityManager()
->getRepository('SiteWebsiteBundle:Article')
->findBy(array('type' => 'news'), array('date' => 'desc'), 4
);
/* start paginator section */
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$articles,
$this->get('request')->query->get('page', 4)/*page number*/,
1/*limit per page*/
);
var_dump($request->query->get('page')); //wyświetla null
return $this->render('SiteWebsiteBundle:Press:news.html.twig', array( 'articles' => $articles,
'pagination' => $pagination,
));
}
Kod widoku:
<h2>Aktualności</h2>
{% set base = app.request.getBasePath() %}
{% for article in pagination %}
<article>
<div class="article-image">
{% if article.hasImage %}
<img
src="{{ base }}/files/articles/{{ article.type }}/{{ article.id % 100 }}/{{ article.id }}.jpg"
alt="{{ article.title }}"
/>
{% endif %}
</div>
<div class="article-content">
<h3>{{ article.title }}<small>,
{{ article
.date.format
('m.Y') }}</small
></h3
> <div>{{ article.brief|raw }}</div>
</div>
</article>
{% endfor %}
{# display navigation #}
<div class="navigation">
{{ knp_pagination_render(pagination) }}
</div>
EDITJuż sobie poradziłam, pojawił się jednak kolejny problem jak umiescić na jednej stronie dwie paginacje, obydwie korzystają z tej samej zmiennej page_name: page ustawianej w pliku config.xml
Wystarczy mi żebym wiedziała jak 'podać' nową zmienną dla drugiego paginatora.
Ten post edytował justysia90 6.06.2013, 15:23:06