post

Paginação com Codeigniter 3

Publicado em: 21/12/2021

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>


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.

Clique aqui e entre em contato


Comentários