Пагінація в CodeЗапальник 4 з прикладом

⚡ Розумний підсумок

Пагінація в CodeIgniter розбиває великі набори результатів бази даних на невеликі сторінки з зручною навігацією за допомогою вбудованої бібліотеки пагінації. У цьому покроковому посібнику наведено робочий приклад, який запитує таблицю авторів, налаштовує обмеження на сторінку та відображає нумеровані посилання навігації.

  • 🗂️ Основна мета: Пагінація розділяє великі результати запитів на керовані сторінки, покращуючи читабельність та зменшуючи час завантаження сторінки.
  • Налаштування бібліотеки: Завантажте бібліотеки пагінації та бази даних, потім передайте масив $config, який визначає base_url, total_rows та per_page.
  • 🔢 Сегмент URI: Значення uri_segment вказує CodeЗапальник, який URL сегмент містить зміщення, яке використовується для пропуску вже показаних записів.
  • 🧱 Рівень моделі: Модель надає доступ до методів get_count() та get_authors($limit, $start), тому контролер отримує лише ті рядки, які потрібні одній сторінці.
  • 🔗 Навігаційні посилання: Метод create_links() автоматично генерує готові до стилізації попередні, нумеровані та наступні посилання.
  • 🎨 Індивідуальний стиль: Ключі конфігурації, такі як full_tag_open та cur_tag_open, обгортають посилання вашими власними класами CSS або розміткою фреймворку.
  • 🤖 AI Assist: Інструменти штучного інтелекту можуть створювати каркас моделі, контролера та масиву $config з визначення таблиці, а потім пояснювати кожен параметр.

Пагінація в CodeЗапалювач

Бази даних – це живі сутності. Вони зростають з плином часу. Під час розробки додатків нам потрібно враховувати безліч записів, які користувачам доведеться переглядати. Пагінація дозволяє нам розбити результати на невеликі, зручні для керування частини. На наступному зображенні показано приклад пагінації на Google пошук.

Пагінація в Codeзапальник

У цьому посібнику ви дізнаєтесь, як розбивати результати бази даних на сторінки в CodeIgniter використовує бібліотеку пагінації. Цей посібник передбачає, що ви знайомі з основами CodeАктивний запис Igniter. Якщо ви ще не знаєте, можете прочитати попередні навчальні посібники. Інше припущення полягає в тому, що ви вже завантажили CodeЗапальник.

Конфігурація бази даних

Ми почнемо зі створення бази даних і вставлення в неї деяких фіктивних записів. Це буде одна таблиця бази даних із 50 записами в ній.

Запустіть наступний сценарій проти MySQL створити таблицю авторів бази даних. Вставте 50 фіктивних записів.

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

Тепер, коли ми успішно створили нашу базу даних та додали в неї фіктивні записи, давайте налаштуємо нашу CodeПрограма Igniter для зв'язку з базою даних.

Відкрийте application/config/database.php

Встановіть параметри з’єднання з базою даних подібно до наведених нижче

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

ТУТ,

  • 'hostname' => 'localhost', встановлює ім'я хоста бази даних
  • 'username' => 'root', вказує ім'я користувача бази даних
  • 'password' => 'melody', встановлює пароль бази даних
  • 'database' => 'ci_pagination', визначає назву бази даних.

Ми також будемо автоматично завантажувати бібліотеку бази даних під час запуску нашої програми. Давайте зробимо це. Відкрийте application/config/autoload.php

Завантажте бібліотеку бази даних, як показано в коді нижче

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

Ось і все для конфігурації бази даних.

Давайте тепер попрацюємо над моделлю бази даних для пагінації.

CodeМодель пагінації бази даних Igniter

Створіть нову модель Authors_model у програмі/models

Додайте наступний код

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

ТУТ,

  • protected $table = 'authors'; визначає захищену змінну, яка містить назву таблиці бази даних для моделі
  • публічна функція __construct() {…} викликає метод батьківського конструктора
  • Публічна функція get_count() {…} повертає загальну кількість записів у таблиці бази даних. Це потрібно для нумерації сторінок.
  • public function get_authors($limit, $start) {…} визначає метод, який буде використано для отримання результатів з бази даних. Ми передаємо ліміт та початкову точку. Ліміт визначає загальну кількість записів, які будуть повернуті, тоді як start визначає кількість записів, які слід пропустити.

Ось і все з нашою моделлю бази даних. Тепер давайте створимо маршрути, які відповідатимуть на наші результати з розбивкою на сторінки.

CodeМаршрути пагінації Igniter

Відкрийте файл маршрутів у application/config/routes.php

Додайте наступний маршрут

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

ТУТ,

  • Ми визначаємо маршрут авторів, який приймає необов'язковий параметр числа. Необов'язковий параметр визначається за допомогою відкриваючих та закриваючих дужок. Визначений маршрут викликає метод index у контролері авторів.

Тепер перейдемо до контролера для наших результатів з розбивкою на сторінки.

CodeКонтролер пагінації Igniter

Створіть новий файл Authors.php у каталозі application/controllers

Додайте наступний код

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

ТУТ,

  • class Authors extends CI_Controller {…} ми визначаємо клас Authors, який розширює клас CI_Controller
  • public function __construct() {…} цей метод ініціалізує батьківський конструктор і завантажує URL-помічник, модель авторів і бібліотеку розбиття на сторінки.
  • публічна функція index() {…} визначає метод, який відповідає нашим авторам маршруту
    • $config[“base_url”] = base_url() . “authors”; встановлює пагінацію URL що буде використано для створення посилань на сторінки
    • $config[“total_rows”] = $this->authors_model->get_count(); встановлює загальну кількість рядків, які потрібно розбити на сторінки. Значення отримується з моделі авторів шляхом виклику методу get_count.
    • $config[“per_page”] = 10; визначає рядки, які мають відображатися на сторінці
    • $config[“uri_segment”] = 2; визначає URL сегмент, що містить значення, яке буде використано для пропуску записів
    • $this->pagination->initialize($config); ініціалізує бібліотеку пагінації, використовуючи значення масиву конфігурації, які ми визначили
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; перевіряє, чи встановлено номер пропуску у другому сегменті URI, і якщо він не встановлено, то змінній $page присвоюється значення 0
    • $data[“links”] = $this->pagination->create_links(); створює посилання на розбивку сторінок і призначає їх ключу links змінної масиву $data.
    • $data['authors'] = $this->authors_model->get_authors($config[“per_page”], $page); отримує записи авторів з розбивкою на сторінки та призначає їх ключу authors масиву $data
    • $this->load->view('authors/index', $data); завантажує перегляд індексу в каталозі авторів і передає змінну масиву $data.

Ось і все для нашого контролера. Тепер створимо вигляд, який відображатиме результати нашої бази даних.

Створіть новий каталог авторів у програмі/переглядах

Створіть новий файл index.php у application/views/authors/index.php

Додайте наступний код

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

ТУТ,

  • перебирає результати змінної $authors та виводить результати у таблицю
  • друкує посилання на сторінки внизу нашої таблиці.

Давайте тепер запустимо нашу програму та подивимося на результати.

У цьому посібнику ми використовуємо вбудований веб-сервер PHP, але ви можете використовувати будь-який веб-сервер, який підтримує PHP.

Відкрийте термінал

Виконайте наступну команду

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

ТУТ,

  • Наведена вище команда переходить до каталогу коду програми та запускає вбудований сервер на порту 3000.

Примітка: шлях до програми має збігатися зі шляхом завантаження CodeЗапалювач. Ви можете використовувати будь-який вільний порт на вашому комп'ютері. Необов'язково використовувати порт 3000.

Відкрийте веббраузер і завантажте наступне URL

http://localhost:3000/authors

Ви повинні отримати результати, подібні до наведених нижче

CodeКонтролер пагінації Igniter

Як налаштувати CodeПосилання на сторінки Igniter

За замовчуванням метод create_links() виводить прості теги прив'язки. Ви можете обгорнути ці посилання у власну розмітку, щоб вони відповідали CSS-фреймворку, такому як Bootstrap або Bulma. Додайте ключі стилізації до того ж масиву $config перед викликом 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';

Найкорисніші ключі конфігурації описані нижче.

  • повне_відкриття_тегу / повне_закриття_тегу: розмітка, яка обгортає весь набір посилань, ідеально підходить для або контейнер.
  • num_tag_open / num_tag_close: розмітка навколо кожного посилання на пронумеровану сторінку.
  • cur_tag_open / cur_tag_close: розмітка навколо номера поточної активної сторінки.
  • наступне_посилання / попереднє_посилання: текст або символи, що використовуються для кнопок «наступний» та «попередній».

Оскільки стилізація повністю знаходиться в конфігурації, ви можете змінити стиль пагінації в усьому застосунку, редагуючи один масив, не торкаючись логіки контролера.

Поширені запитання

Значення per_page визначає, скільки записів відображатиметься на одній сторінці, тоді як uri_segment вказує CodeЗапальник, який URL сегмент містить номер зсуву. Разом вони контролюють, скільки рядків відображається та яка сторінка завантажується.

Зазвичай значення uri_segment не відповідає позиції зміщення у вашому URLПорахуйте сегменти після вашого домену та встановіть uri_segment на це число, щоб create_links() зчитував правильне зміщення сторінки.

Так. Для пагінації потрібні лише значення total_rows та per_page. Ви можете пагінувати масиви, результати API або файли, вказавши загальну кількість вручну та самостійно розподіливши дані для кожної сторінки.

Так. Маючи ім'я таблиці та стовпці, ШІ може створити модель, масив $config та метод index() контролера. RevПерегляньте значення base_url та uri_segment, а потім перевірте згенеровані посилання.

Так. Вставте свій контролер і URL структура, а ШІ може виявити невідповідні значення uri_segment, відсутні косі риски base_url або неправильне джерело total_rows, а потім запропонувати виправлену конфігурацію для спроби.

Підсумуйте цей пост за допомогою: