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: