Paginering i CodeIgniter 4 med eksempel

โšก Smart oppsummering

Paginering i CodeIgniter deler opp store databaseresultatsett i smรฅ, navigerbare sider ved hjelp av det innebygde pagineringsbiblioteket. Denne gjennomgangen bygger et fungerende eksempel som spรธr en forfattertabell, konfigurerer grenser per side og gjengir nummererte navigasjonslenker.

  • ๐Ÿ—‚๏ธ Kjerneformรฅl: Paginering deler store spรธrreresultater inn i hรฅndterbare sider, noe som forbedrer lesbarheten og reduserer sideinnlastingstiden.
  • โš™๏ธ Oppsett av bibliotek: Last inn paginerings- og databasebibliotekene, og send deretter en $config-array som definerer base_url, total_rows og per_page.
  • ๐Ÿ”ข URI-segment: uri_segment-verdien forteller CodeTennapparat som URL segmentet inneholder forskyvningen som brukes til รฅ hoppe over allerede viste poster.
  • ๐Ÿงฑ Modelllag: En modell eksponerer get_count() og get_authors($limit, $start) slik at kontrolleren bare henter radene รฉn side trenger.
  • ๐Ÿ”— Navigasjonslenker: Metoden create_links() genererer automatisk forrige, nummererte og neste lenker som er klare til รฅ formateres.
  • ๐ŸŽจ Egendefinert styling: Konfigurasjonsnรธkler som full_tag_open og cur_tag_open pakker inn lenkene i dine egne CSS-klasser eller rammeverksmarkering.
  • ๐Ÿค– AI Assist: AI-verktรธy kan stillase modellen, kontrolleren og $config-arrayet fra en tabelldefinisjon, og deretter forklare hvert alternativ.

Paginering i CodeTenner

Databaser er levende enheter. De vokser etter hvert som tiden gรฅr. Nรฅr vi designer applikasjoner, mรฅ vi ta hensyn til de mange postene som brukerne mรฅ bla gjennom. Paginering lar oss dele opp resultatene vรฅre i smรฅ, hรฅndterbare deler. Fรธlgende bilde viser et eksempel pรฅ paginering pรฅ Google sรธke.

Paginering i Codetenn

I denne veiledningen skal du lรฆre hvordan du paginerer databaseresultater i CodeIgniter ved hjelp av pagineringsbiblioteket. Denne veiledningen forutsetter at du er kjent med det grunnleggende om CodeIgniter Active Record. Hvis du ikke vet det ennรฅ, kan du lese de tidligere veiledningene. Den andre antagelsen er at du allerede har lastet ned CodeTennapparat.

Database konfigurasjon

Vi starter med รฅ lage databasen og sette inn noen dummy-poster i den. Det vil vรฆre en enkelt tabelldatabase med 50 poster pรฅ.

Kjรธr fรธlgende skript mot MySQL for รฅ lage databaseforfattertabellen. Sett inn 50 dummy-poster.

CREATE SCHEMA ci_pagination;
 
DROP TABLE IF EXISTS `authors`;
 
CREATE TABLE `authors` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`first_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`last_name` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
`email` varchar(100) COLLATE utf8_unicode_ci NOT NULL,
`birthdate` date NOT NULL,
`added` timestamp NOT NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=101 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (1, 'Brielle', 'O\'Hara', 'alexandre67@example.com', '1974-05-21', '1999-09-17 19:17:28');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (2, 'Flavio', 'Lehner', 'mafalda85@example.net', '1971-10-14', '1998-09-09 00:25:06');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (3, 'Elmira', 'Johns', 'wellington52@example.org', '1983-11-28', '2015-02-07 15:56:43');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (4, 'Elza', 'Mitchell', 'marisol46@example.org', '1989-03-08', '1992-08-21 00:21:39');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (5, 'Viva', 'Greenfelder', 'era94@example.com', '1995-04-17', '2017-04-30 05:55:39');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (6, 'Maxwell', 'VonRueden', 'mcassin@example.net', '1994-07-01', '1996-05-08 23:30:14');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (7, 'Deontae', 'Becker', 'rory.kub@example.org', '1992-02-19', '2017-07-22 11:49:15');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (8, 'Sylvester', 'Christiansen', 'erohan@example.org', '1990-09-03', '2004-05-08 08:15:37');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (9, 'Torrey', 'Strosin', 'adams.luciano@example.net', '1999-10-09', '2009-08-30 21:30:44');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (10, 'Kelli', 'Smitham', 'daniel.catalina@example.com', '2012-11-07', '1986-01-22 20:52:57');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (11, 'Abigale', 'Schuppe', 'andreanne.hayes@example.net', '2018-02-18', '1994-05-07 06:26:36');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (12, 'Letha', 'Gleason', 'eldridge.heaney@example.net', '2009-02-06', '1998-05-25 04:37:54');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (13, 'Sienna', 'Upton', 'monique57@example.org', '2017-08-17', '2009-08-08 19:08:10');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (14, 'Harley', 'Gutkowski', 'breilly@example.net', '1987-11-30', '1998-07-31 11:08:01');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (15, 'Lois', 'Bednar', 'hpouros@example.net', '2002-02-11', '2001-07-26 15:04:16');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (16, 'Gail', 'McDermott', 'reina.kerluke@example.com', '1987-03-30', '2004-12-15 20:38:29');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (17, 'Sydney', 'Strosin', 'dweber@example.net', '1985-04-29', '2010-08-07 08:50:35');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (18, 'Anne', 'Cremin', 'fritz.schmitt@example.com', '1976-02-15', '1980-03-25 05:29:41');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (19, 'Norberto', 'Bergnaum', 'franecki.javon@example.net', '1971-03-11', '1993-03-20 23:36:25');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (20, 'Arvid', 'Johns', 'pschultz@example.org', '2016-01-03', '1995-04-30 17:07:15');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (21, 'Bernita', 'Fay', 'arne96@example.org', '1983-12-26', '1987-02-23 16:55:28');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (22, 'Gonzalo', 'Gorczany', 'velma.huels@example.com', '1987-10-19', '2016-10-18 19:25:46');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (23, 'Jackie', 'Klein', 'gretchen.howe@example.com', '1971-01-20', '2010-11-16 02:58:05');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (24, 'Andrew', 'Kessler', 'collins.faye@example.org', '1984-08-07', '1971-12-15 08:46:42');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (25, 'Claire', 'Hudson', 'madalyn.wunsch@example.org', '1984-12-19', '1991-07-04 14:35:53');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (26, 'Prudence', 'Runte', 'koch.laurie@example.net', '2008-12-27', '1985-09-30 04:57:55');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (27, 'Destinee', 'Romaguera', 'tromp.tiffany@example.com', '1978-11-09', '1997-11-09 19:58:08');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (28, 'Marianna', 'Harvey', 'clovis.schuppe@example.com', '2013-08-28', '1990-08-06 19:29:19');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (29, 'Eloy', 'Lakin', 'wmorissette@example.net', '1989-12-08', '1974-03-16 03:21:16');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (30, 'Rubie', 'McClure', 'haley.louisa@example.net', '1987-09-12', '1998-07-02 10:45:36');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (31, 'Marisa', 'Stracke', 'zachary76@example.org', '1975-05-28', '1975-03-19 00:57:35');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (32, 'Jacey', 'Beatty', 'dahlia.hermann@example.org', '1979-12-17', '1971-01-21 16:50:58');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (33, 'Idella', 'Ruecker', 'elda.reichert@example.com', '2009-09-15', '1996-04-19 22:27:31');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (34, 'Dimitri', 'Bednar', 'freida.parker@example.org', '1998-12-02', '2008-12-30 23:29:57');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (35, 'Elfrieda', 'Smitham', 'padberg.rex@example.org', '2018-07-23', '1972-04-01 07:52:25');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (36, 'Dwight', 'Walter', 'gmosciski@example.org', '2016-08-15', '1994-07-02 11:06:55');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (37, 'Macie', 'Fay', 'uschuppe@example.net', '1976-01-29', '2005-12-13 18:44:46');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (38, 'Lori', 'Kshlerin', 'mhansen@example.net', '1983-04-08', '1986-01-18 16:03:52');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (39, 'Jeffry', 'Paucek', 'alisha35@example.net', '2002-10-02', '2004-03-29 07:06:03');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (40, 'Yvonne', 'Bernhard', 'jaqueline21@example.net', '2017-11-04', '1986-12-15 23:55:23');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (41, 'Ludwig', 'Heathcote', 'marcelino.kirlin@example.org', '1981-02-09', '2000-08-02 20:45:48');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (42, 'Jadyn', 'Wiegand', 'georgianna.swift@example.net', '1982-06-16', '1980-12-05 13:09:37');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (43, 'Ferne', 'Smitham', 'melany22@example.com', '1996-12-17', '1984-11-18 19:26:27');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (44, 'Meta', 'Corkery', 'xharber@example.com', '1972-03-31', '2007-01-20 00:07:31');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (45, 'Toni', 'Wolf', 'wyman.crystal@example.org', '2012-04-15', '1973-06-22 12:14:37');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (46, 'Zack', 'Luettgen', 'deion.konopelski@example.org', '2003-05-29', '2018-11-19 05:03:21');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (47, 'Kameron', 'Dietrich', 'ronaldo.torphy@example.com', '1973-05-20', '1974-09-16 20:27:17');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (48, 'Zetta', 'Lebsack', 'timmothy.vandervort@example.com', '1996-11-04', '2001-03-06 01:33:01');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (49, 'Benny', 'Hane', 'leone.lueilwitz@example.net', '2008-02-02', '2006-01-27 22:12:39');
INSERT INTO `authors` (`id`, `first_name`, `last_name`, `email`, `birthdate`, `added`) VALUES (50, 'Evans', 'Gleason', 'ccummerata@example.org', '1999-09-09', '1990-09-26 17:50:11');

Nรฅ som vi har opprettet databasen vรฅr og satt inn dummy-poster i den, la oss konfigurere CodeIgniter-applikasjonen for รฅ kommunisere med databasen.

ร…pne application/config/database.php

Angi databasetilkoblingsparametere som ligner pรฅ fรธlgende

$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => 'melody',
'database' => 'ci_pagination',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);

HER,

  • 'hostname' => 'localhost', setter vertsnavnet til databasen
  • 'brukernavn' => 'root', angir databasebrukernavnet
  • 'password' => 'melody', angir databasepassordet
  • 'database' => 'ci_pagination', spesifiserer databasenavnet.

Vi vil ogsรฅ laste inn databasebiblioteket automatisk nรฅr applikasjonen vรฅr starter. La oss gjรธre det. ร…pne application/config/autoload.php

Last inn databasebiblioteket som vist med koden nedenfor

$autoload['libraries'] = array('database');

Det er det for databasekonfigurasjonen.

La oss nรฅ jobbe med databasemodellen for paginering.

CodeIgniter Pagineringsdatabasemodell

Opprett en ny modell Authors_model i applikasjon/modeller

Legg til fรธlgende kode

<?php
 
class Authors_model extends CI_Model {
 
protected $table = 'authors';
 
public function __construct() {
parent::__construct();
}
 
public function get_count() {
return $this->db->count_all($this->table);
}
 
public function get_authors($limit, $start) {
$this->db->limit($limit, $start);
$query = $this->db->get($this->table);
 
return $query->result();
}
}

HER,

  • beskyttet $tabell = 'forfattere'; definerer en beskyttet variabel som inneholder databasetabellnavnet for modellen
  • offentlig funksjon __construct() {...} kaller den overordnede konstruktรธrmetoden
  • public function get_count() {โ€ฆ} returnerer det totale antallet poster i databasetabellen. Dette er nรธdvendig for pagineringsformรฅl.
  • public function get_authors($limit, $start) {โ€ฆ} definerer en metode som skal brukes til รฅ hente paginerte resultater fra databasen. Vi sender inn limit og startpunkt. Limit definerer det totale antallet poster som skal returneres, mens start definerer antallet poster som skal hoppes over.

Det var alt for databasemodellen vรฅr. La oss nรฅ lage rutene som skal respondere pรฅ de paginerte resultatene vรฅre.

CodeIgniter pagineringsruter

ร…pne rutefilen i application/config/routes.php

Legg til fรธlgende rute

$route['authors/(:num)'] = 'authors';

HER,

  • Vi definerer en ruteforfatter som aksepterer en valgfri parameter for tallet . Den valgfrie parameteren defineres ved รฅ bruke รฅpnings- og lukkingsparentesene. Den definerte ruten kaller indeksmetoden i forfatterkontrolleren.

La oss nรฅ gรฅ videre til kontrolleren for vรฅre paginerte resultater.

CodeTenn-pagineringskontroller

Opprett en ny fil Authors.php i program/kontrollere-katalogen

Legg til fรธlgende kode

<?php defined('BASEPATH') OR exit('No direct script access allowed');
 
class Authors extends CI_Controller {
 
public function __construct() {
parent:: __construct();
 
$this->load->helper('url');
$this->load->model('authors_model');
$this->load->library("pagination");
}
 
public function index() {
$config = array();
$config["base_url"] = base_url() . "authors";
$config["total_rows"] = $this->authors_model->get_count();
$config["per_page"] = 10;
$config["uri_segment"] = 2;
 
$this->pagination->initialize($config);
 
$page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0;
 
$data["links"] = $this->pagination->create_links();
 
$data['authors'] = $this->authors_model->get_authors($config["per_page"], $page);
 
$this->load->view('authors/index', $data);
}
}

HER,

  • klasse Authors extends CI_Controller {...} vi definerer en klasse Authors som utvider CI_Controller-klassen
  • offentlig funksjon __construct() {...} denne metoden initialiserer overordnet konstruktรธr og laster inn url-hjelperen, forfattermodellen og pagineringsbiblioteket.
  • public function index() {...} definerer metoden som svarer til vรฅre ruteforfattere
    • $config[โ€œbase_urlโ€] = base_url().โ€œauthorsโ€; angir pagineringen URL som skal brukes til รฅ generere pagineringslenker
    • $config[โ€œtotal_rowsโ€] = $this->authors_model->get_count(); angir det totale antallet rader som mรฅ pagineres. Verdien hentes fra forfattermodellen ved รฅ kalle get_count-metoden.
    • $config[โ€œper_sideโ€] = 10; definerer radene som mรฅ vises per side
    • $config[โ€œuri_segmentโ€] = 2; spesifiserer URL segment som inneholder verdien som skal brukes til รฅ hoppe over poster
    • $this->pagination->initialize($config); initialiserer pagineringsbiblioteket ved รฅ bruke config-arrayverdiene som vi definerte
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; sjekker om skip-nummeret er angitt i det andre segmentet av URI-en, og hvis det ikke er angitt, tildeles verdien 0 til variabelen $page
    • $data[โ€œlinksโ€] = $this->paginering->create_links(); oppretter pagineringskoblingene og tilordner dem til koblingsnรธkkelen til $data array-variabelen.
    • $data['authors'] = $this->authors_model->get_authors($config[โ€œper_pageโ€], $page); henter de paginerte forfatteroppfรธringene og tilordner dem til authors-nรธkkelen til $data arrayvariabelen.
    • $this->load->view('authors/index', $data); laster indeksvisningen i forfatterkatalogen og sender inn matrisevariabelen $data.

Det var alt for kontrolleren vรฅr. La oss nรฅ lage visningen som viser databaseresultatene vรฅre.

Opprett en ny katalogforfattere i applikasjon/visninger

Opprett en ny fil index.php i application/views/authors/index.php

Legg til fรธlgende kode

<!DOCTYPE html>
<html>
<head>
<title>CodeIgniter Pagination</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https:0
</head>
<body>
<div class="container">
<h3 class="title is-3">CodeIgniter Database Pagination</h3>
<div class="column">
<table class="table is-bordered is-striped is-narrow is-hoverable is-fullwidth">
<thead>
<tr>
<th>ID</th>
<th>Contact Name</th>
<th>Contact Number</th>
<th>Email</th>
<th>City</th>
</tr>
</thead>
<tbody>
<?php foreach ($authors as $author): ?>
<tr>
<td><?= $author->id ?></td>
<td><?= $author->first_name ?></td>
<td><?= $author->last_name ?></td>
<td><?= $author->email ?></td>
<td><?= $author->birthdate ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<p><?php echo $links; ?></p>
</div>
</div>
</body>
</html>

HER,

  • gรฅr gjennom resultatene av variabelen $authors i lรธkker og skriver ut resultatene i en tabell
  • skriver ut pagineringslenkene nederst i tabellen.

La oss nรฅ starte sรธknaden vรฅr og se resultatene.

I denne opplรฆringen bruker vi den innebygde PHP-webserveren, men du kan bruke hvilken som helst webserver som stรธtter PHP.

ร…pne terminalen

Kjรธr fรธlgende kommando

cd C:\Sites\ci-app
php -S localhost:3000

HER,

  • Kommandoen ovenfor blar til programkodekatalogen og starter den innebygde serveren pรฅ port 3000.

Merk: applikasjonsstien mรฅ samsvare med stien der du lastet ned CodeIgniter. Du kan bruke et hvilket som helst ledig portnummer pรฅ datamaskinen din. Det er ikke nรธdvendig รฅ bruke port 3000.

ร…pne nettleseren og last inn fรธlgende URL

http://localhost:3000/authors

Du bรธr kunne fรฅ resultater som ligner pรฅ fรธlgende

CodeTenn-pagineringskontroller

Hvordan tilpasse CodeIgniter-pagineringslenker

Som standard sender create_links()-metoden ut vanlige ankerkoder. Du kan pakke disse lenkene inn i din egen markup slik at de samsvarer med et CSS-rammeverk, for eksempel Bootstrap eller Bulma. Legg til stylingnรธklene i den samme $config-matrisen fรธr du kaller initialize().

$config['full_tag_open'] = '<nav><ul class="pagination">';
$config['full_tag_close'] = '</ul></nav>';
$config['num_tag_open'] = '<li class="page-item">';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="page-item active"><a class="page-link">';
$config['cur_tag_close'] = '</a></li>';
$config['next_link'] = 'Next &raquo;';
$config['prev_link'] = '&laquo; Previous';

De mest nyttige konfigurasjonsnรธklene er beskrevet nedenfor.

  • full_tag_รฅpen / full_tag_lukket: markup som omslutter hele settet med lenker, ideelt for en eller container.
  • num_tag_open / num_tag_close: markering rundt hver nummererte sidelenke.
  • cur_tag_open / cur_tag_close: markering rundt det gjeldende, aktive sidetallet.
  • neste_lenke / forrige_lenke: teksten eller symbolene som brukes for neste og forrige knapper.

Fordi stylingen ligger utelukkende i konfigurasjonen, kan du endre paginering pรฅ tvers av hele applikasjonen ved รฅ redigere en enkelt array, uten รฅ rรธre kontrollerlogikken din.

Spรธrsmรฅl og svar

Verdien per_page angir hvor mange poster som vises pรฅ รฉn side, mens uri_segment forteller CodeTennapparat som URL segmentet inneholder forskyvningsnummeret. Sammen kontrollerer de hvor mange rader som vises og hvilken side som lastes inn.

Vanligvis samsvarer ikke uri_segment-verdien med posisjonen til forskyvningen i din URLTell segmentene etter domenet ditt og sett uri_segment til det tallet slik at create_links() leser riktig sideforskyvning.

Ja. Paginering trenger bare et total_rows-antall og en per_page-verdi. Du kan paginere arrayer, API-resultater eller filer ved รฅ oppgi totalen manuelt og dele opp dataene for hver side selv.

Ja. Gitt et tabellnavn og kolonner, kan AI produsere modellen, $config-arrayet og controller index()-metoden. RevSe verdiene for base_url og uri_segment, og test deretter de genererte lenkene.

Ja. Lim inn kontrolleren din og URL struktur, og AI kan oppdage uri_segment-verdier som ikke samsvarer, manglende base_url-strek eller en feil total_rows-kilde, og deretter foreslรฅ den korrigerte konfigurasjonen รฅ prรธve.

Oppsummer dette innlegget med: