Paginering i CodeIgniter 4 med eksempel

โšก Smart opsummering

Paginering i CodeIgniter opdeler store databaseresultatsรฆt i smรฅ, navigerbare sider ved hjรฆlp af det indbyggede pagineringsbibliotek. Denne gennemgang opbygger et fungerende eksempel, der forespรธrger en forfattertabel, konfigurerer grรฆnser pr. side og gengiver nummererede navigationslinks.

  • ๐Ÿ—‚๏ธ Kerneformรฅl: Paginering opdeler store forespรธrgselsresultater i hรฅndterbare sider, hvilket forbedrer lรฆsbarheden og reducerer sideindlรฆsningstiden.
  • ๐Ÿ‡ง๐Ÿ‡ท Opsรฆtning af bibliotek: Indlรฆs pagination- og databasebibliotekerne, og send derefter et $config-array, der definerer base_url, total_rows og per_page.
  • ๐Ÿ”ข URI-segment: Vรฆrdien uri_segment fortรฆller CodeTรฆndingsapparat, som URL segmentet indeholder den forskydning, der bruges til at springe allerede viste poster over.
  • ๐Ÿงฑ Modellag: En model eksponerer get_count() og get_authors($limit, $start), sรฅ controlleren kun henter de rรฆkker, som รฉn side har brug for.
  • ๐Ÿ”— Navigationslinks: Metoden create_links() genererer automatisk forrige, nummererede og nรฆste links, der er klar til at blive formateret.
  • ๐ŸŽจ Brugerdefineret styling: Konfigurationsnรธgler som full_tag_open og cur_tag_open omslutter linkene i dine egne CSS-klasser eller framework-markup.
  • ๐Ÿค– AI Assist: AI-vรฆrktรธjer kan scaffolde modellen, controlleren og $config-arrayet fra en tabeldefinition og derefter forklare hver mulighed.

Paginering i Codetรฆndsats

Databaser er levende enheder. De vokser med tiden. Nรฅr vi designer applikationer, skal vi tage hรธjde for de mange poster, som brugerne skal gennemse. Paginering giver os mulighed for at opdele vores resultater i smรฅ, hรฅndterbare dele. Fรธlgende billede viser et eksempel pรฅ paginering pรฅ Google sรธge.

Paginering i Codetรฆndsats

I denne vejledning lรฆrer du, hvordan du paginerer databaseresultater i CodeIgniter ved hjรฆlp af pagineringsbiblioteket. Denne vejledning forudsรฆtter, at du er bekendt med det grundlรฆggende i CodeIgniter Active Record. Hvis du ikke kender det endnu, kan du lรฆse de tidligere vejledninger. Den anden antagelse er, at du allerede har downloadet CodeTรฆndingsapparat.

Database konfiguration

Vi starter med at oprette databasen og indsรฆtte nogle dummy-records i den. Det vil vรฆre en enkelt tabeldatabase med 50 poster pรฅ.

Kรธr fรธlgende script mod MySQL for at oprette databaseforfattertabellen. Indsรฆt 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');

Nu hvor vi har oprettet vores database og indsat dummy-poster i den, lad os konfigurere vores CodeIgniter-applikation til at kommunikere med databasen.

ร…bn application/config/database.php

Indstil databaseforbindelsesparametre svarende til 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', indstiller vรฆrtsnavnet for databasen
  • 'brugernavn' => 'root', angiver databasens brugernavn
  • 'password' => 'melody', angiver databaseadgangskoden
  • 'database' => 'ci_pagination', angiver databasenavnet.

Vi vil ogsรฅ automatisk indlรฆse databasebiblioteket, nรฅr vores applikation starter. Lad os gรธre det. ร…bn application/config/autoload.php

Indlรฆs databasebiblioteket som vist med koden nedenfor

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

Det er det for databasekonfigurationen.

Lad os nu arbejde med databasemodellen for pagination.

CodeIgniter Pagineringsdatabasemodel

Opret en ny model Authors_model i application/models

Tilfรธj 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,

  • protected $table = 'authors'; definerer en beskyttet variabel, der indeholder databasetabellens navn for modellen
  • public funktion __construct() {...} kalder den overordnede konstruktรธrmetode
  • public function get_count() {โ€ฆ} returnerer det samlede antal poster i databasetabellen. Dette er nรธdvendigt til pagination.
  • public function get_authors($limit, $start) {โ€ฆ} definerer en metode, der skal bruges til at hente paginerede resultater fra databasen. Vi indtaster limit og startpunkt. Limit definerer det samlede antal poster, der skal returneres, mens start definerer antallet af poster, der skal springes over.

Det var det for vores databasemodel. Lad os nu oprette de ruter, der skal reagere pรฅ vores paginerede resultater.

CodeIgniter Pagineringsruter

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

Tilfรธj fรธlgende rute

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

HER,

  • Vi definerer en rute for forfattere, der accepterer en valgfri parameter af tallet . Den valgfri parameter defineres ved hjรฆlp af de รฅbne og lukkede parenteser. Den definerede rute kalder indeksmetoden i forfattercontrolleren.

Lad os nu gรฅ videre til controlleren for vores paginerede resultater.

CodeIgniter Pagineringscontroller

Opret en ny fil Authors.php i application/controllers bibliotek

Tilfรธj 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 udvider CI_Controller {...} vi definerer en klasse Authors, der udvider CI_Controller-klassen
  • public funktion __construct() {...} denne metode initialiserer den overordnede konstruktรธr og indlรฆser url-hjรฆlperen, forfattermodellen og pagineringsbiblioteket.
  • public function index() {...} definerer metoden, der reagerer pรฅ vores ruteforfattere
    • $config[โ€œbase_urlโ€] = base_url().โ€œauthorsโ€; angiver pagineringen URL som vil blive brugt til at generere pagineringslinks
    • $config[โ€œtotal_rowsโ€] = $this->authors_model->get_count(); angiver det samlede antal rรฆkker, der skal pagineres. Vรฆrdien hentes fra authors-modellen ved at kalde get_count-metoden.
    • $config[โ€œper_sideโ€] = 10; definerer de rรฆkker, der skal vises pr. side
    • $config[โ€œuri_segmentโ€] = 2; angiver URL segment, der indeholder den vรฆrdi, der skal bruges til at springe poster over
    • $this->pagination->initialize($config); initialiserer paginationsbiblioteket ved hjรฆlp af de config-arrayvรฆrdier, vi definerede
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; kontrollerer om skip-nummeret er angivet i det andet segment af URI'en, og hvis det ikke er angivet, tildeles vรฆrdien 0 til variablen $page
    • $data[โ€œlinksโ€] = $this->pagination->create_links(); opretter pagineringslinkene og tildeler dem til linknรธglen i $data array-variablen.
    • $data['authors'] = $this->authors_model->get_authors($config[โ€œper_pageโ€], $page); henter de paginerede forfatterposter og tildeler dem til authors-nรธglen i arrayvariablen $data
    • $this->load->view('authors/index', $data); indlรฆser indeksvisningen i forfatterbiblioteket og sender array-variablen $data ind.

Det var alt for vores controller. Lad os nu oprette den visning, der viser vores databaseresultater.

Opret en ny mappeforfattere i applikation/visninger

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

Tilfรธj 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,

  • Lรธber gennem resultaterne af variablen $authors og udskriver resultaterne i en tabel
  • udskriver pagineringslinkene nederst i vores tabel.

Lad os nu starte vores ansรธgning og se resultaterne.

I denne vejledning bruger vi den indbyggede PHP-webserver, men du kan bruge enhver webserver, der understรธtter PHP.

ร…bn terminalen

Kรธr fรธlgende kommando

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

HER,

  • Ovenstรฅende kommando browser til programkodebiblioteket og starter den indbyggede server pรฅ port 3000.

Bemรฆrk: Stien til applikationen skal stemme overens med den sti, hvortil du downloadede CodeIgniter. Du kan bruge et hvilket som helst ledigt portnummer pรฅ din computer. Det er ikke nรธdvendigt at bruge port 3000.

ร…bn webbrowseren og indlรฆs fรธlgende URL

http://localhost:3000/authors

Du bรธr vรฆre i stand til at fรฅ resultater svarende til fรธlgende

CodeIgniter Pagineringscontroller

Sรฅdan tilpasses CodeIgniter Pagineringslinks

Som standard udskriver create_links()-metoden almindelige ankertags. Du kan indpakke disse links i din egen markup, sรฅ de matcher et CSS-framework, f.eks. Bootstrap eller Bulma. Tilfรธj stylingnรธglerne til det samme $config-array, fรธr du kalder 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 konfigurationsnรธgler er beskrevet nedenfor.

  • fuld_tag_รฅben / fuld_tag_lukning: markup, der omslutter hele sรฆttet af links, ideelt til en eller beholder.
  • num_tag_รฅben / num_tag_luk: markup omkring hvert nummereret sidelink.
  • cur_tag_open / cur_tag_close: markup omkring det aktuelle, aktive sidetal.
  • nรฆste_link / forrige_link: teksten eller symbolerne, der bruges til knapperne nรฆste og forrige.

Fordi stylingen udelukkende findes i konfigurationen, kan du omstyle pagination pรฅ tvรฆrs af hele applikationen ved at redigere et enkelt array uden at rรธre din controller-logik.

Ofte Stillede Spรธrgsmรฅl

Vรฆrdien per_page angiver, hvor mange poster der vises pรฅ รฉn side, mens uri_segment fortรฆller CodeTรฆndingsapparat, som URL segmentet indeholder offset-nummeret. Sammen styrer de, hvor mange rรฆkker der vises, og hvilken side der indlรฆses.

Normalt matcher uri_segment-vรฆrdien ikke positionen af โ€‹โ€‹offset i din URLTรฆl segmenterne efter dit domรฆne, og indstil uri_segment til det tal, sรฅ create_links() lรฆser den korrekte sideforskydning.

Ja. Paginering krรฆver kun et total_rows-antal og en per_page-vรฆrdi. Du kan paginere arrays, API-resultater eller filer ved at angive det samlede antal manuelt og selv udslette dataene for hver side.

Ja. Med et tabelnavn og kolonner kan AI producere modellen, $config-arrayet og controller index()-metoden. RevSe vรฆrdierne for base_url og uri_segment, og test derefter de genererede links.

Ja. Indsรฆt din controller og URL struktur, og AI kan finde uoverensstemmelser i uri_segment-vรฆrdier, manglende base_url-skrรฅstreger eller en forkert total_rows-kilde og derefter foreslรฅ den korrigerede konfiguration, der skal afprรธves.

Opsummer dette indlรฆg med: