post
Paginação com Codeigniter 3
Publicado em: 21/12/2021
Crie uma paginação completa com o codigniter 3 com este tutorial rapido.
1° Crie o arquivo Helper
Crie um arquivo helper para gerenciar as configurações da paginação dentro de application > helpers, neste exemplo, vou criar com o nome de paginacao_helper.php
No arquivo, cole o seguinte código abaixo:
<?php function paginar($url, $contar, $limite) { $config['base_url'] = base_url().$url."/pagina/"; $config['total_rows'] = $contar; $config['per_page'] = $limite; $config['use_page_numbers'] = TRUE; $config['next_link'] = 'Próxima <span class="lnr lnr-arrow-right"></span>'; $config['prev_link'] = '<span class="lnr lnr-arrow-left"></span> Anterior'; $config['full_tag_open'] = '<ul class="uk-pagination uk-flex-center uk-margin-remove-bottom">'; $config['full_tag_close'] = '</ul>'; $config['num_tag_open'] = '<li>'; $config['num_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="uk-active"><span>'; $config['cur_tag_close'] = '</span></li>'; $config['prev_tag_open'] = '<li>'; $config['prev_tag_close'] = '</li>'; $config['next_tag_open'] = '<li>'; $config['next_tag_close'] = '</li>'; $config['first_link'] = '<span class="lnr lnr-arrow-left"></span> Primeira Pagina'; $config['last_link'] = 'Última Pagina <span class="lnr lnr-arrow-right"></span>'; $config['first_tag_open'] = '<li>'; $config['first_tag_close'] = '</li>'; $config['last_tag_open'] = '<li>'; $config['last_tag_close'] = '</li>'; return $config; }
OBS: O exemplo acima, mostra valores que uso no dia a dia, de tags e classes do tema/framework UiKit, mas você pode editar o HTML dos valores acima para funcionar com o seu tema preferido.
2° Criar arquivo Controller
No diretório application > controllers, crie o arquivo ao qual deseja gerenciar, neste exemplo, vamos gerenciar produtos.
Nosso arquivo vai se chamar Produtos.php
e vamos chamar nosso arquivo helper de paginação segue a estrutura abaixo:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Produtos extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('Produtos_model'); $this->load->helper('paginacao_helper'); // AQUI ESTOU CHAMANDO O ARQUIVO HELPER DE PAGINAÇÃO QUE CRIAMOS ACIMA. $this->load->library("pagination"); } public function index() { $this->pagina(); } public function pagina() { // AQUI VAMOS COLOCAR NOSSO CÓDIGO DA PAGINA. } }
3° Editando a função “pagina”
Agora, ainda dentro do arquivo Produtos.php
, vamos editar a função “pagina” que criamos acima.
Dentro dela vamos colocar o código de paginação e outros códigos. Ficará como abaixo:
public function pagina() { // PAGINAÇÃO (INICIO) $limite = 10; $pagina = ($this->uri->segment(3)) ? ($this->uri->segment(3) * $limite) - $limite : 0; $this->data['get_count'] = $this->Produtos_model->get_count(); $paginacao = paginar("produtos", $this->data['get_count'], $limite); $this->pagination->initialize($paginacao); $this->data["links"] = $this->pagination->create_links(); // PAGINAÇÃO (FIM) $this->data['produtos'] = $this->Produtos_model->get_paginacao($paginacao["per_page"], $pagina); $this->data['conteudo'] = 'Produtos'; $this->load->view('Interface/Interface', $this->data); }
4° Criando arquivo Model
Agora vamos criar o arquivo Model, que será responsável por obter as informações do banco de dados.
Dentro do diretório applications > models, crie o arquivo Produtos_models.php
Dentro do arquivo, ficará o seguinte código:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Produtos_models extends CI_Model { public function get_paginacao($limit, $start) { $this->db->order_by('id', 'DESC'); $this->db->limit($limit, $start); return $this->db->get('produtos')->result_array(); // OBTENDO DADOS DA TABELA DE NOME "PRODUTOS" NO BANCO DE DADOS } public function get_count() { return $this->db->count_all_results('produtos'); } }
5° Criando arquivo View
Agora vamos criar nosso arquivo responsável pela visualização.
Dentro de application > views, crie o arquivo Produtos.php
, e vamos adicionar essa estrutura simples de visualização, mas que pode ser editada por você para melhorar.
<?php if($produtos) { foreach ($produtos as $produto) { ?> <div> <p>Nome: <?= $produto['nome'] ?></p> <p>Preço: <?= $produto['preco'] ?></p> </div> <?php } } ?> <div> <?= $links ?> </div>
Link de compartilhamento
Compartilhe esse conteudo nas redes sociais ou por mensagem usando o link curto abaixo. Basta clicar em cima do link para copiar.
bruno.art.br/pb/1298
ID de Referência: 1298
Sugira uma publicação
Envie uma mensagem para mim, e sugira alguma publicação de algum tema que tenha dificuldades de resolver.