Iniciando com Symfony 2 – Parte 08

No tutorial anterior, criamos um upload de imagens para servirem de capa para nossos posts, agora vamos instalar e configurar um Bundle, disponibilizado pela comunidade, para fazer a paginação de nossa página index. Para isso temos que instalar o Knp Paginator em nossa aplicação. Instalação do Knp Paginator Para instalar o Knp Paginator, temos que

No tutorial anterior, criamos um upload de imagens para servirem de capa para nossos posts, agora vamos instalar e configurar um Bundle, disponibilizado pela comunidade, para fazer a paginação de nossa página index. Para isso temos que instalar o Knp Paginator em nossa aplicação.

Instalação do Knp Paginator

Para instalar o Knp Paginator, temos que adicioná-lo em nosso composer.json. Abra o arquivo composer.json e adicione a linha abaixo:

Caso não o conheça, ou tenha dúvidas, leia este post (Composer para iniciantes).

Depois de adicionado o Knp Paginator no composer, vamos instalá- lo. Entre no terminal e digite:

Após o Download, o Knp Paginator está instalado em nossa aplicação.

Configurando o Knp Paginator

A primeira configuração que devemos fazer, é registrar o novo bundle instalado, para isso entre no AppKernel, caminho: app/AppKernel.php

Adicione a linha abaixo no registro de bundles:

Veja na linha 16:

Pronto o Knp Paginator está registrado.

Agora vamos fazer as configurações padrões no Knp, para isso entre no arquivo config.yml, caminho: app/config/config.yml

No final do arquivo adicione as configurações abaixo:

Essas configurações foram tiradas da documentação do Knp Paginator

Configurando o Controller

Depois de termos feito as configurações de instalação do Knp Paginator, vamos configurar nosso controller, para isso entre no IndexControlerController, caminho: src/Tableless/CoreBundle/Controller/IndexControlerController.php

Primeiramente para pegar o número de páginas, de acordo com a quantidade de posts temos que usar o request do symfony, então vamos dar um use em Request, veja na linha 8:

Em nossa indexAction temos que pegar a biblioteca do paginador, passar nosso posts, pegar as páginas via request, e quantidade de posts que queremos por páginas, e retorná- los em forma de array para que nossa view possa apresentar. Em meu caso vou usar apenas três posts por página.

Veja:

Configurando a View

Nosso controller está configurado, agora temos que configurar nossa view, para que a mesma apresente os posts, com a paginação.

Entre na view index.html.twig, caminho: src/Tableless/CoreBundle/Resources/views/IndexController/index.html.twig

Em nossa index, temos um for, que está recebendo a variável posts, vamos trocar a variável posts por pagination, que foi a variável que passamos em nosso controller, veja:

de:

troque por:

E onde queremos que nossa paginação fique, vamos colocar o código abaixo:

Veja nossa index.html.twig pronta

Rode o servidor:

Entre na url:

https://127.0.0.1:8000

Veja a imagem:

Estilizando a paginação

Podemos perceber, que a paginação está sem estilização, porém como estamos utilizando o bootstrap, vamos entrar no arquivo config.yml, caminho: app/config/config.yml

E vamos alterar o pagination da tamplete do knp_paginator

de:

para:

Atualize a página, e pronto, veja:

Conclusão

Pronto, nosso simples projeto está fazendo a paginação de posts, no próximo tutorial vamos configurar outro Bundle, onde faremos o slug para nossos posts, para que nossas urls, fiquem um pouco mais amigáveis.

Links dos tutoriais anteriores:

Iniciando com Symfony 2 – Instalação

Iniciando com Symfony 2 – parte 02

Iniciando com Symfony 2 – parte 03

Iniciando com Symfony 2 – parte 04

Iniciando com Symfony 2 – parte 05

Iniciando com Symfony 2 – parte 06

Iniciando com Symfony 2 – parte 07

O projeto encontra-se no GitHub!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *