post
Paginação com Codeigniter 3
Publicado em: 21/12/2021 / Atualizado em: 26/10/2022
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>
Publicações recomendadas:
Não há posts relacionados.
Inscreva-se em Nossa News:
Seja notificando sempre que tiver conteúdo novo disponível no meu canal do Youtube ou artigo no meu Blog.
Link Curto para 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 e sugira um publicação sobre um assunto que tenha dificuldades de resolver.