Rumah pembangunan bahagian belakang tutorial php Bagaimana untuk membuat penomboran tersuai dalam CakePHP?

Bagaimana untuk membuat penomboran tersuai dalam CakePHP?

Jun 04, 2023 am 08:32 AM
penomboran cakephp Sesuaikan

CakePHP ialah rangka kerja PHP yang berkuasa yang menyediakan pembangun dengan banyak alat dan ciri berguna. Salah satu daripadanya ialah penomboran, yang membantu kami membahagikan sejumlah besar data kepada beberapa halaman, menjadikan penyemakan imbas dan manipulasi lebih mudah.

Secara lalai, CakePHP menyediakan beberapa kaedah penomboran asas, tetapi kadangkala anda mungkin perlu mencipta beberapa kaedah penomboran tersuai. Artikel ini akan menunjukkan kepada anda cara membuat penomboran tersuai dalam CakePHP.

Langkah 1: Buat kelas penomboran tersuai

Pertama, kita perlu mencipta kelas penomboran tersuai. Kelas ini akan bertanggungjawab untuk mengendalikan semua logik berkaitan paging. Cipta fail baharu bernama CustomPaginator.php dalam direktori app/Lib/Utility dan tambahkan kod berikut pada fail:

    <?php
    App::uses('PaginatorComponent', 'Controller/Component');

    class CustomPaginator extends PaginatorComponent {
    
        // Override the default method to customize the pagination logic
        public function paginate($object = null, $scope = array(), $whitelist = array()) {
    
            // Get the current page number
            $page = isset($this->Controller->request->params['named']['page']) ? $this->Controller->request->params['named']['page'] : 1;
    
            // Set the default pagination values
            $perPage = 10;
            $start = ($page - 1) * $perPage;
    
            // Get the total count of records
            $count = $object->find('count', array('conditions' => $scope));
    
            // Build the pagination data
            $result = array(
                'count' => $count,
                'perPage' => $perPage,
                'page' => $page,
                'totalPages' => ceil($count / $perPage),
                'start' => $start,
                'end' => ($start + $perPage) > $count ? $count : ($start + $perPage - 1),
                'hasPrevPage' => $page > 1,
                'hasNextPage' => ($start + $perPage) < $count
            );
    
            // Set the pagination data in the controller
            $this->Controller->set('paging', $result);
    
            // Return the paginated records
            return $object->find('all', array('conditions' => $scope, 'limit' => $perPage, 'offset' => $start));
        }
    }
Salin selepas log masuk

Kelas penomboran tersuai ini adalah berdasarkan kelas penomboran lalai CakePHP PaginatorComponent. Kami mengatasi kaedah paginate() untuk melaksanakan logik penomboran tersuai. Ia mengambil parameter berikut:

  • $objek: Objek model yang akan dinomborkan.
  • $skop: Syarat pertanyaan, digunakan untuk menapis rekod untuk dinomborkan.
  • $whitelist: tatasusunan senarai putih untuk membenarkan atau menafikan parameter pertanyaan tertentu

Dalam pelaksanaan kami, kami mula-mula mendapat nombor halaman semasa, dan kemudian menetapkan lalai setiap halaman Nombor rekod dan nombor rekod permulaan. Seterusnya, kami menggunakan kaedah find() untuk mendapatkan jumlah bilangan rekod, dan kemudian mengira jumlah bilangan halaman dan bilangan rekod tamat. Akhir sekali, kami menetapkan semua data paging kepada pembolehubah 'paging' pengawal dan mengembalikan rekod bernombor.

Langkah 2: Instantiate kelas penomboran tersuai

Sekarang kita telah mencipta kelas penomboran tersuai, kita perlu membuat instantiate dalam pengawal. Untuk melakukan ini, kami perlu menambah kod berikut pada pengawal kami:

    <?php
    App::uses('AppController', 'Controller');
    App::uses('CustomPaginator', 'Lib/Utility');
    
    class UsersController extends AppController {
    
        public $components = array('CustomPaginator');
        public $paginate = array('CustomPaginator');
    
        public function index() {
            // Get all users
            $this->set('users', $this->CustomPaginator->paginate($this->User));
        }
    }
Salin selepas log masuk

Kami menggunakan App::uses() untuk memuatkan kelas penomboran tersuai dan kemudian membuat instantiat dalam pengawal. Kami juga menambah kelas penomboran tersuai pada pengawal menggunakan atribut $components dan $paginate.

Dalam tindakan index() kami, kami memanggil $CustomPaginator->paginate() dan menyerahkan objek model Pengguna kami kepadanya. Kami kemudiannya menetapkan data pengguna bernombor ke dalam pembolehubah paparan.

Langkah 3: Buat paparan bernombor

Akhir sekali, kita perlu mencipta paparan untuk memaparkan data bernombor. Tambahkan kod berikut dalam fail 'views/users/index.ctp':

    <h1> Users </h1>
    
    <ul>
    <?php foreach ($users as $user): ?>
        <li> <?php echo $user['User']['name']; ?> </li>
    <?php endforeach; ?>
    </ul>
    
    <div class="pagination">
        <?php
        echo $this->Paginator->prev('<< ' . __('Previous'), array(), null, array('class' => 'disabled'));
        echo $this->Paginator->numbers();
        echo $this->Paginator->next(__('Next') . ' >>', array(), null, array('class' => 'disabled'));
        ?>
    </div>
Salin selepas log masuk

Paparan ini hanyalah senarai ringkas Pengguna dan kemudian memaparkan pautan navigasi bernombor.

Kami menggunakan kaedah prev(), numbers() dan next() PaginatorHelper untuk menjana pautan navigasi. Kaedah ini akan menghasilkan pautan berdasarkan komponen '$CustomPaginator' yang kami takrifkan dalam pengawal.

Kesimpulan

Penomboran tersuai boleh memberi anda kawalan dan fleksibiliti yang lebih besar untuk memenuhi keperluan khusus anda. Dalam artikel ini, kami menunjukkan kepada anda cara membuat penomboran tersuai dalam CakePHP. Kini anda boleh menggunakan pengetahuan ini untuk membangunkan lebih banyak aplikasi tersuai.

Atas ialah kandungan terperinci Bagaimana untuk membuat penomboran tersuai dalam CakePHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

Cara cepat menyediakan avatar tersuai dalam Netflix Cara cepat menyediakan avatar tersuai dalam Netflix Feb 19, 2024 pm 06:33 PM

Avatar di Netflix ialah representasi visual identiti penstriman anda. Pengguna boleh melangkaui avatar lalai untuk menyatakan keperibadian mereka. Teruskan membaca artikel ini untuk mengetahui cara menetapkan gambar profil tersuai dalam apl Netflix. Cara cepat menetapkan avatar tersuai dalam Netflix Dalam Netflix, tiada ciri terbina dalam untuk menetapkan gambar profil. Walau bagaimanapun, anda boleh melakukan ini dengan memasang sambungan Netflix pada penyemak imbas anda. Mula-mula, pasang gambar profil tersuai untuk sambungan Netflix pada penyemak imbas anda. Anda boleh membelinya di kedai Chrome. Selepas memasang sambungan, buka Netflix pada penyemak imbas anda dan log masuk ke akaun anda. Navigasi ke profil anda di penjuru kanan sebelah atas dan klik

CakePHP Bekerja dengan Pangkalan Data CakePHP Bekerja dengan Pangkalan Data Sep 10, 2024 pm 05:25 PM

Bekerja dengan pangkalan data dalam CakePHP adalah sangat mudah. Kami akan memahami operasi CRUD (Buat, Baca, Kemas Kini, Padam) dalam bab ini.

Bagaimana untuk mencipta dan menyesuaikan gambar rajah Venn dalam Python? Bagaimana untuk mencipta dan menyesuaikan gambar rajah Venn dalam Python? Sep 14, 2023 pm 02:37 PM

Gambar rajah Venn ialah gambar rajah yang digunakan untuk mewakili hubungan antara set. Untuk mencipta rajah Venn kita akan menggunakan matplotlib. Matplotlib ialah perpustakaan visualisasi data yang biasa digunakan dalam Python untuk mencipta carta dan graf interaktif. Ia juga digunakan untuk mencipta imej dan carta interaktif. Matplotlib menyediakan banyak fungsi untuk menyesuaikan carta dan graf. Dalam tutorial ini, kami akan menggambarkan tiga contoh untuk menyesuaikan gambar rajah Venn. Terjemahan Bahasa Cina Contoh ialah: Contoh Ini adalah contoh mudah untuk mencipta persilangan dua gambar rajah Venn terlebih dahulu, kami mengimport perpustakaan yang diperlukan dan venn yang diimport; Kemudian kami mencipta set data sebagai set Python, selepas itu kami menggunakan fungsi "venn2()" untuk mencipta

Pembangunan PHP: Bagaimana untuk melaksanakan pengisihan data jadual dan fungsi halaman Pembangunan PHP: Bagaimana untuk melaksanakan pengisihan data jadual dan fungsi halaman Sep 20, 2023 am 11:28 AM

Pembangunan PHP: Bagaimana untuk melaksanakan fungsi pengisihan data jadual dan halaman Dalam pembangunan web, memproses sejumlah besar data adalah tugas biasa. Untuk jadual yang perlu memaparkan sejumlah besar data, biasanya perlu melaksanakan fungsi pengisihan dan halaman untuk memberikan pengalaman pengguna yang baik dan mengoptimumkan prestasi sistem. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi pengisihan dan halaman data jadual, dan memberikan contoh kod khusus. Fungsi pengisihan melaksanakan fungsi pengisihan dalam jadual, membolehkan pengguna mengisih dalam tertib menaik atau menurun mengikut medan yang berbeza. Berikut ialah borang pelaksanaan

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse Jan 28, 2024 am 10:01 AM

Bagaimana untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse? Sebagai pembangun, menguasai kekunci pintasan ialah salah satu kunci untuk meningkatkan kecekapan semasa pengekodan dalam Eclipse. Sebagai persekitaran pembangunan bersepadu yang berkuasa, Eclipse bukan sahaja menyediakan banyak kekunci pintasan lalai, tetapi juga membenarkan pengguna untuk menyesuaikannya mengikut keutamaan mereka sendiri. Artikel ini akan memperkenalkan cara untuk menyesuaikan tetapan kekunci pintasan dalam Eclipse dan memberikan contoh kod khusus. Buka Eclipse First, buka Eclipse dan masukkan

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

See all articles