Sayfalama CodeÖrnekli Igniter 4

⚡ Akıllı Özet

Sayfalama CodeIgniter, yerleşik sayfalama kütüphanesini kullanarak büyük veritabanı sonuç kümelerini küçük, gezilebilir sayfalara böler. Bu kılavuz, yazarlar tablosunu sorgulayan, sayfa başına limitleri yapılandıran ve numaralandırılmış gezinme bağlantıları oluşturan çalışan bir örnek oluşturmaktadır.

  • 🗂️ Temel Amaç: Sayfalama, büyük sorgu sonuçlarını yönetilebilir sayfalara bölerek okunabilirliği artırır ve sayfa yükleme süresini azaltır.
  • ⚙️ Kütüphane Kurulumu: Sayfalama ve veritabanı kütüphanelerini yükleyin, ardından base_url, total_rows ve per_page değerlerini tanımlayan bir $config dizisi geçirin.
  • 🔢 URI Segmenti: uri_segment değeri şunu belirtir: CodeAteşleyici URL Segment, önceden gösterilen kayıtları atlamak için kullanılan ofseti içerir.
  • 🧱 Model Katmanı: Bir model, get_count() ve get_authors($limit, $start) fonksiyonlarını kullanıma sunarak, denetleyicinin yalnızca bir sayfanın ihtiyaç duyduğu satırları getirmesini sağlar.
  • 🔗 Gezinme Bağlantıları: `create_links()` yöntemi, önceki, numaralı ve sonraki bağlantıları otomatik olarak biçimlendirmeye hazır hale getirir.
  • 🎨 Özel Tasarım: full_tag_open ve cur_tag_open gibi yapılandırma anahtarları, bağlantıları kendi CSS sınıflarınız veya çerçeve işaretlemelerinizle sarmalar.
  • 🤖 Yapay Zeka Yardımı: Yapay zeka araçları, tablo tanımından model, denetleyici ve yapılandırma dizisini oluşturabilir ve ardından her seçeneği açıklayabilir.

Sayfalama Codeateşleyici

Veritabanları yaşayan varlıklardır. Zaman geçtikçe büyürler. Uygulamalar tasarlarken, kullanıcıların göz atmaları gereken çok sayıda kaydı dikkate almalıyız. Sayfalama, sonuçlarımızı küçük, yönetilebilir parçalara ayırmamızı sağlar. Aşağıdaki görselde sayfalama örneği gösterilmektedir. Google arama.

Sayfalama Codeateşleyici

Bu eğitimde, veritabanı sonuçlarını nasıl sayfalara ayıracağınızı öğreneceksiniz. CodeIgniter'da sayfalama kütüphanesini kullanma. Bu eğitim, Igniter'ın temel kavramlarına aşina olduğunuzu varsaymaktadır. CodeIgniter Active Record. Henüz bilmiyorsanız, önceki eğitimleri okuyabilirsiniz. Diğer bir varsayım ise, onu zaten indirmiş olmanızdır. CodeAteşleyici.

Veritabanı yapılandırması

Veritabanını oluşturarak ve içine bazı sahte kayıtları ekleyerek başlayacağız. Üzerinde 50 kayıt bulunan tek tablolu bir veritabanı olacaktır.

Aşağıdaki betiği çalıştırın MySQL veritabanı yazarları tablosunu oluşturmak için. 50 sahte kayıt ekleyin.

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

Veritabanımızı başarıyla oluşturup içine örnek kayıtlar ekledikten sonra, şimdi yapılandırmamıza geçelim. CodeVeritabanıyla iletişim kurmak için kullanılan Igniter uygulaması.

application/config/database.php dosyasını açın

Veritabanı bağlantı parametrelerini aşağıdakine benzer şekilde ayarlayın

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

İŞTE,

  • 'hostname' => 'localhost', veritabanının ana bilgisayar adını ayarlar
  • 'username' => 'root', veritabanı kullanıcı adını belirtir.
  • 'password' => 'melody', veritabanı şifresini ayarlar.
  • 'database' => 'ci_pagination', veritabanı adını belirtir.

Uygulamamız başladığında veritabanı kütüphanesini de otomatik olarak yükleyeceğiz. Bunu yapalım. application/config/autoload.php dosyasını açın.

Veritabanı kitaplığını aşağıdaki kodda gösterildiği gibi yükleyin

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

Veritabanı yapılandırması için bu kadar.

Şimdi sayfalama için veritabanı modeli üzerinde çalışalım.

CodeIgniter Sayfalama Veritabanı Modeli

Uygulama/modellerde yeni bir model Authors_model oluşturun

Aşağıdaki kodu ekleyin

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

İŞTE,

  • `protected $table = 'authors';` ifadesi, model için veritabanı tablo adını tutan korumalı bir değişken tanımlar.
  • public function __construct() {…} ana yapıcı metodunu çağırır
  • public function get_count() {…} veritabanı tablosundaki toplam kayıt sayısını döndürür. Bu, sayfalama amacıyla gereklidir.
  • `public function get_authors($limit, $start) {…}` veritabanından sayfalandırılmış sonuçları almak için kullanılacak bir yöntem tanımlar. Limit ve başlangıç ​​noktasını iletiyoruz. Limit, döndürülecek toplam kayıt sayısını tanımlarken, start ise atlanması gereken kayıt sayısını tanımlar.

Veritabanı modelimiz bu kadar. Şimdi sayfalandırılmış sonuçlarımıza yanıt verecek rotaları oluşturalım.

CodeIgniter Sayfalama Yolları

Routes dosyasını application/config/routes.php dosyasında açın.

Aşağıdaki rotayı ekleyin

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

İŞTE,

  • Yazarlar (Authors) adında, isteğe bağlı olarak sayısal bir parametre alan bir rota tanımlıyoruz. İsteğe bağlı parametre, açılış ve kapanış parantezleri kullanılarak tanımlanır. Tanımlanan rota, Authors denetleyicisindeki index yöntemini çağırır.

Şimdi de sayfalandırılmış sonuçlarımız için kontrol ünitesine geçelim.

CodeIgniter Sayfalama Kontrol Cihazı

application/controllers dizininde yeni bir Authors.php dosyası oluşturun

Aşağıdaki kodu ekleyin

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

İŞTE,

  • Authors sınıfı CI_Controller'ı genişletir {…} CI_Controller sınıfını genişleten Authors sınıfını tanımlarız
  • public function __construct() {…} bu yöntem ana kurucuyu başlatır ve url yardımcısını, yazar modelini ve sayfalandırma kitaplığını yükler.
  • public function index() {…} rota yazarlarımıza yanıt veren yöntemi tanımlar
    • $config[“base_url”] = base_url() . “authors”; sayfalama ayarlarını yapar. URL sayfalama bağlantıları oluşturmak için kullanılacak
    • $config[“total_rows”] = $this->authors_model->get_count(); ifadesi, sayfalama için gereken toplam satır sayısını belirler. Değer, `get_count` metodu çağrılarak yazarlar modelinden alınır.
    • $config[“sayfa başına”] = 10; sayfa başına görüntülenmesi gereken satırları tanımlar
    • $config[“uri_segment”] = 2; ifadesi şunu belirtir: URL Kayıtları atlamak için kullanılacak değeri içeren bölüm
    • `$this->pagination->initialize($config);` kodu, tanımladığımız yapılandırma dizisi değerlerini kullanarak sayfalama kütüphanesini başlatır.
    • $page = ($this->uri->segment(2)) ? $this->uri->segment(2) : 0; URI'nin ikinci bölümünde atlama numarasının ayarlanıp ayarlanmadığını kontrol eder ve ayarlanmamışsa $page değişkenine 0 değeri atanır.
    • $veri[“bağlantılar”] = $this->pagination->create_links(); sayfalandırma bağlantılarını oluşturur ve bunları $data dizi değişkeninin bağlantılar anahtarına atar.
    • $data['authors'] = $this->authors_model->get_authors($config[“per_page”], $page); kodu, sayfalandırılmış yazar kayıtlarını alır ve bunları $data dizi değişkeninin authors anahtarına atar.
    • $this->load->view('yazarlar/dizin', $veri); Dizin görünümünü yazarlar dizinine yükler ve $data dizi değişkenine iletir.

Kontrolcümüz bu kadar. Şimdi veritabanı sonuçlarımızı görüntüleyecek olan görünümü oluşturalım.

Uygulamada/görünümlerde yeni bir dizin yazarları oluşturun

application/views/authors/index.php dosyasında yeni bir index.php dosyası oluşturun

Aşağıdaki kodu ekleyin

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

İŞTE,

  • Bu kod, `$authors` değişkeninin sonuçlarını döngüyle işler ve sonuçları bir tabloda yazdırır.
  • sayfalandırma bağlantılarını tablomuzun altına yazdırır.

Şimdi başvurumuza başlayalım ve sonuçları görelim.

Bu derste, yerleşik PHP web sunucusunu kullanıyoruz, ancak siz bunu destekleyen herhangi bir web sunucusunu kullanabilirsiniz. PHP.

Terminali aç

Aşağıdaki komutu çalıştırın

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

İŞTE,

  • Yukarıdaki komut uygulama kodu dizinine göz atar ve yerleşik sunucuyu 3000 numaralı bağlantı noktasında başlatır.

Not: Uygulama yolunun, uygulamayı indirdiğiniz yol ile aynı olması gerekir. CodeIgniter. Bilgisayarınızda boş olan herhangi bir port numarasını kullanabilirsiniz. 3000 numaralı portu kullanmanız gerekmez.

Web tarayıcınızı açın ve aşağıdakileri yükleyin. URL

http://localhost:3000/authors

Aşağıdakine benzer sonuçlar elde edebilmelisiniz

CodeIgniter Sayfalama Kontrol Cihazı

Nasıl Özelleştirilir CodeIgniter Sayfalama Bağlantıları

Varsayılan olarak, `create_links()` yöntemi düz bağlantı etiketleri üretir. Bu bağlantıları, CSS çerçevesine (örneğin `<link>` etiketi) uyacak şekilde kendi işaretlemenizle sarmalayabilirsiniz. Bootstrap Ya da Bulma. initialize() fonksiyonunu çağırmadan önce stil anahtarlarını aynı $config dizisine ekleyin.

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

En kullanışlı yapılandırma tuşları aşağıda açıklanmıştır.

  • full_tag_open / full_tag_close: Bağlantıların tamamını saran işaretleme, aşağıdakiler için idealdir: veya konteyner.
  • num_tag_open / num_tag_close: Numaralandırılmış her sayfa bağlantısının etrafına işaretleme ekleyin.
  • cur_tag_open / cur_tag_close: Geçerli, aktif sayfa numarasının etrafına işaretleme ekleyin.
  • sonraki_bağlantı / önceki_bağlantı: Sonraki ve önceki düğmeler için kullanılan metin veya semboller.

Stillendirme tamamen yapılandırmada yer aldığından, denetleyici mantığınıza dokunmadan tek bir diziyi düzenleyerek uygulamanın tamamındaki sayfalama stilini değiştirebilirsiniz.

SSS

per_page değeri bir sayfada kaç kaydın görüneceğini belirlerken, uri_segment ise kaç kaydın görüneceğini belirtir. CodeAteşleyici URL Segment, ofset numarasını tutar. Birlikte, kaç satırın gösterileceğini ve hangi sayfanın yükleneceğini kontrol ederler.

Genellikle uri_segment değeri, ofsetin konumuyla eşleşmez. URLAlan adınızdan sonraki segmentleri sayın ve uri_segment'i bu sayıya ayarlayın, böylece create_links() doğru sayfa konumunu okuyabilir.

Evet. Sayfalama için yalnızca toplam satır sayısı ve sayfa başına değer yeterlidir. Dizileri, API sonuçlarını veya dosyaları, toplamı manuel olarak girerek ve her sayfa için verileri kendiniz dilimleyerek sayfalayabilirsiniz.

Evet. Tablo adı ve sütunları verildiğinde, yapay zeka modeli, $config dizisini ve denetleyici index() yöntemini üretebilir. Revbase_url ve uri_segment değerlerini inceleyin, ardından oluşturulan bağlantıları test edin.

Evet. Kumandanızın ekran görüntüsünü yapıştırın ve URL Yapı incelendiğinde, yapay zeka uyumsuz uri_segment değerlerini, eksik base_url eğik çizgilerini veya yanlış total_rows kaynağını tespit edebilir ve ardından denenecek düzeltilmiş yapılandırmayı önerebilir.

Bu yazıyı şu şekilde özetleyin: