Paginare în CodeIgniter 4 cu exemplu

⚡ Rezumat inteligent

Paginare în CodeIgniter împarte seturile mari de rezultate ale bazei de date în pagini mici, navigabile, folosind biblioteca de paginare încorporată. Această demonstrație construiește un exemplu funcțional care interoghează un tabel de autori, configurează limite per pagină și afișează linkuri de navigare numerotate.

  • 🗂️ Scop principal: Paginarea împarte rezultatele interogărilor mari în pagini ușor de gestionat, îmbunătățind lizibilitatea și reducând timpul de încărcare a paginii.
  • ⚙️ Configurarea bibliotecii: Încărcați bibliotecile de paginare și de bază de date, apoi transmiteți un array $config care definește base_url, total_rows și per_page.
  • 🔢 Segment URI: Valoarea uri_segment indică CodeAprinzător care URL Segmentul poartă offset-ul utilizat pentru a omite înregistrările deja afișate.
  • 🧱 Strat model: Un model expune get_count() și get_authors($limit, $start) astfel încât controlerul să preia doar rândurile de care are nevoie o pagină.
  • 🔗 Legături de navigare: Metoda create_links() generează automat linkuri anterioare, numerotate și următoare, gata de stilizat.
  • 🎨 Stil personalizat: Cheile de configurare precum full_tag_open și cur_tag_open încapsulează linkurile în propriile clase CSS sau markup-ul framework-ului.
  • 🤖 Asistență AI: Instrumentele de inteligență artificială pot construi schele pentru modelul, controlerul și matricea $config dintr-o definiție de tabel, apoi pot explica fiecare opțiune.

Paginare în Codeigniter

Bazele de date sunt entități vii. Ele cresc odată cu trecerea timpului. Atunci când proiectăm aplicații, trebuie să luăm în considerare numeroasele înregistrări pe care utilizatorii vor trebui să le parcurgă. Paginarea ne permite să împărțim rezultatele în părți mici, ușor de gestionat. Următoarea imagine prezintă un exemplu de paginare pe Google căutare.

Paginare în Codeaprinzător

În acest tutorial, veți învăța cum să paginați rezultatele bazei de date în CodeIgniter folosind biblioteca de paginare. Acest tutorial presupune că sunteți familiarizat cu elementele de bază ale CodeIgniter Active Record. Dacă nu îl știți încă, puteți citi tutorialele anterioare. Cealaltă presupunere este că ați descărcat deja CodeAprindere.

Configurarea bazei de date

Vom începe cu crearea bazei de date și inserarea unor înregistrări fictive în ea. Va fi o bază de date cu un singur tabel cu 50 de înregistrări.

Rulați următorul script împotriva MySQL pentru a crea tabelul autorilor bazei de date. Introduceți 50 de înregistrări false.

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');

Acum, că am creat cu succes baza noastră de date și am introdus înregistrări fictive în ea, haideți să configurăm CodeAplicația Igniter pentru a comunica cu baza de date.

Deschideți aplicația/config/database.php

Setați parametrii de conectare la baza de date similare cu cele de mai jos

$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
);

AICI,

  • 'hostname' => 'localhost', setează numele de gazdă al bazei de date
  • 'username' => 'root', specifică numele de utilizator al bazei de date
  • 'password' => 'melody', setează parola bazei de date
  • 'database' => 'ci_pagination', specifică numele bazei de date.

De asemenea, vom încărca automat biblioteca bazei de date când pornește aplicația noastră. Să facem asta. Deschideți application/config/autoload.php

Încărcați biblioteca de baze de date așa cum se arată în codul de mai jos

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

Asta e pentru configurarea bazei de date.

Să lucrăm acum la modelul bazei de date pentru paginare.

CodeModelul bazei de date de paginare Igniter

Creați un nou model Authors_model în aplicație/modele

Adăugați următorul cod

<?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();
}
}

AICI,

  • protected $table = 'authors'; definește o variabilă protejată care conține numele tabelului din baza de date pentru model
  • funcția publică __construct() {…} apelează metoda constructorului părinte
  • Funcția publică get_count() {…} returnează numărul total de înregistrări din tabelul bazei de date. Acest lucru este necesar pentru paginare.
  • public function get_authors($limit, $start) {…} definește o metodă care va fi utilizată pentru a recupera rezultatele paginate din baza de date. Introducem limita și punctul de început. Limita definește numărul total de înregistrări care vor fi returnate, în timp ce start definește numărul de înregistrări care ar trebui omise.

Asta e tot pentru modelul nostru de bază de date. Acum să creăm rutele care vor răspunde la rezultatele noastre paginate.

CodeRute de paginare Igniter

Deschideți fișierul rute în application/config/routes.php

Adăugați următorul traseu

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

AICI,

  • Definim o rută authors care acceptă un parametru opțional de tip număr. Parametrul opțional este definit folosind parantezele de deschidere și închidere. Ruta definită apelează metoda index din controlerul Authors.

Să trecem acum la controler pentru rezultatele noastre paginate.

CodeControler de paginare Igniter

Creați un fișier nou Authors.php în directorul aplicație/controlere

Adăugați următorul cod

<?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);
}
}

AICI,

  • clasa Authors extinde CI_Controller {…} definim o clasă Authors care extinde clasa CI_Controller
  • funcția publică __construct() {…} această metodă inițializează constructorul părinte și încarcă url helper, modelul autori și biblioteca de paginare.
  • funcția publică index() {…} definește metoda care răspunde la autorii noștri rute
    • $config[“base_url”] = base_url() . „authors”; setează paginația URL care va fi folosit pentru a genera linkuri de paginare
    • $config[“total_rows”] = $this->authors_model->get_count(); setează numărul total de rânduri care trebuie paginate. Valoarea este preluată din modelul autorilor prin apelarea metodei get_count.
    • $config[„per_page”] = 10; definește rândurile care trebuie afișate pe pagină
    • $config[„uri_segment”] = 2; specifică URL segment care conține valoarea ce va fi utilizată pentru a omite înregistrările
    • $this->pagination->initialize($config); inițializează biblioteca de paginare folosind valorile din matricea de configurație pe care le-am definit
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; verifică dacă numărul de omitere a fost setat în al doilea segment al URI-ului și, dacă nu este setat, atunci valoarea 0 este atribuită variabilei $page
    • $date[“link-uri”] = $this->pagination->create_links(); creează legăturile de paginare și le atribuie cheii de legături a variabilei matrice $data.
    • $data['authors'] = $this->authors_model->get_authors($config[“per_page”], $page); preia înregistrările paginate ale autorilor și le atribuie cheii authors a variabilei array $data
    • $this->load->view('autori/index', $date); încarcă vizualizarea index în directorul autori și trece variabila matrice $data.

Asta e tot pentru controlerul nostru. Să creăm acum vizualizarea care va afișa rezultatele bazei noastre de date.

Creați un nou director de autori în aplicație/vizualizări

Creați un nou fișier index.php în application/views/authors/index.php

Adăugați următorul cod

<!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>

AICI,

  • parcurge rezultatele variabilei $authors și le afișează într-un tabel
  • tipărește linkurile de paginare în partea de jos a tabelului nostru.

Să începem acum aplicația noastră și să vedem rezultatele.

În acest tutorial, folosim serverul web PHP încorporat, dar puteți folosi orice server web care îl acceptă PHP.

Deschide terminalul

Rulați următoarea comandă

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

AICI,

  • Comanda de mai sus navighează în directorul de cod al aplicației și pornește serverul încorporat pe portul 3000.

Notă: calea aplicației trebuie să corespundă cu calea de unde ați descărcat CodeIgniter. Puteți folosi orice număr de port liber pe computer. Nu este necesar să folosiți portul 3000.

Deschideți browserul web și încărcați următoarele URL

http://localhost:3000/authors

Ar trebui să puteți obține rezultate similare cu cele de mai jos

CodeControler de paginare Igniter

Cum să personalizați CodeLinkuri de paginare Igniter

În mod implicit, metoda create_links() generează etichete ancoră simple. Puteți încadra aceste linkuri în propriul markup, astfel încât să corespundă unui framework CSS, cum ar fi Bootstrap sau Bulma. Adăugați cheile de stilizare la aceeași matrice $config înainte de a apela inițializarea().

$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';

Cele mai utile taste de configurare sunt descrise mai jos.

  • deschidere_etichetă_full / închidere_etichetă_full: markup care încadrează întregul set de linkuri, ideal pentru un sau recipient.
  • num_tag_open / num_tag_close: marcaj în jurul fiecărui link de pagină numerotat.
  • cur_tag_open / cur_tag_close: marcaj în jurul numărului paginii active curente.
  • următorul_link / prev_link: textul sau simbolurile utilizate pentru butoanele următor și anterior.

Deoarece stilizarea se află în întregime în configurație, puteți restabili paginarea în întreaga aplicație editând o singură matrice, fără a atinge logica controlerului.

Întrebări frecvente

Valoarea per_page setează câte înregistrări apar pe o pagină, în timp ce uri_segment indică CodeAprinzător care URL Segmentul conține numărul de offset. Împreună, acestea controlează câte rânduri sunt afișate și ce pagină se încarcă.

De obicei, valoarea uri_segment nu se potrivește cu poziția offset-ului din fișierul dvs. URLNumără segmentele de după domeniul tău și setează uri_segment la acel număr, astfel încât create_links() să citească offset-ul corect al paginii.

Da. Paginarea necesită doar un număr total_rows și o valoare per_page. Puteți pagina tablouri, rezultate API sau fișiere furnizând totalul manual și secvențiind datele pentru fiecare pagină.

Da. Având în vedere numele unui tabel și coloanele acestuia, inteligența artificială poate produce modelul, matricea $config și metoda index() a controllerului. RevVizualizați valorile pentru base_url și uri_segment, apoi testați linkurile generate.

Da. Lipește controlerul și URL structură, iar inteligența artificială poate detecta valori uri_segment nepotrivite, bare oblice lipsă pentru base_url sau o sursă total_rows incorectă, apoi sugerând configurația corectă de încercat.

Rezumați această postare cu: