post

Paginação com Codeigniter 3

Publicado em: 21/12/2021 / Atualizado em: 26/10/2022

Categorias: BlogCodeigniter

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.

Bruno Devs News


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.

Clique aqui e entre em contato


Comentários