-
ci bootstrap paginate 페이징 처리CI4 2022. 8. 5. 11:30728x90반응형
bootstrap 을 활용해 페이징처리 화면을 커스텀한다.
https://wildflower282.tistory.com/19
ci paginate 페이징처리
#ci paginate 함수 사용하여 페이징 처리 Pagination : CI 에서 제공하며, 간편하게 페이징처리 할 수 있는 함수이다. 해당 함수는 수동으로 로드할 필요 없는 없다. $pager = \Config\Services::pager(); 1. Co..
wildflower282.tistory.com
위 링크와 같이 페이징 함수를 이용할 경우 다음과 같은 형태의 페이징 화면이 된다.
이에 페이징 화면 커스텀을 활용하여 css 변경할 수 있다.
1. default_full.php 활용
- Views/ 하단에 폴더 생성
ex) Pagers - default_full.php 복사하여 생성한 폴더에 붙여넣고, 파일명을 변경해준다.
ex) Views/Pagers/test_pager.php
* default_full.php 파일은 codeigniter4 프레임워크에 존재한다.
ex){Project Root}/vendor/codeigniter4/framework/system/Pager/Views - 복사 붙여넣기한 파일(test_pager.php)을 열어 css를 입혀준다. (bootstrap class 부여)
<li class="page-item">,<li class="page-item active"> <a class="page-link"> bootstrap 에 따라 class명은 다를 수 있습니다.
<?php use CodeIgniter\Pager\PagerRenderer; /** * @var PagerRenderer $pager */ $pager->setSurroundCount(2); ?> <nav aria-label="<?= lang('Pager.pageNavigation') ?>"> <ul class="pagination"> <?php if ($pager->hasPrevious()) : ?> <li class="page-item"> <a class="page-link" href="<?= $pager->getFirst() ?>" aria-label="<?= lang('Pager.first') ?>"> <span aria-hidden="true"><?= lang('Pager.first') ?></span> </a> </li> <li class="page-item"> <a class="page-link" href="<?= $pager->getPrevious() ?>" aria-label="<?= lang('Pager.previous') ?>"> <span aria-hidden="true"><?= lang('Pager.previous') ?></span> </a> </li> <?php endif ?> <?php foreach ($pager->links() as $link) : ?> <li <?= $link['active'] ? 'class="page-item active"' : '' ?>> <a class="page-link" href="<?= $link['uri'] ?>"> <?= $link['title'] ?> </a> </li> <?php endforeach ?> <?php if ($pager->hasNext()) : ?> <li class="page-item"> <a class="page-link" href="<?= $pager->getNext() ?>" aria-label="<?= lang('Pager.next') ?>"> <span aria-hidden="true"><?= lang('Pager.next') ?></span> </a> </li> <li class="page-item"> <a class="page-link" href="<?= $pager->getLast() ?>" aria-label="<?= lang('Pager.last') ?>"> <span aria-hidden="true"><?= lang('Pager.last') ?></span> </a> </li> <?php endif ?> </ul> </nav>
2. Pager에 등록
1) app/Config/Pager.php template에 추가
public $templates = [
'default_full' => 'CodeIgniter\Pager\Views\default_full',
'default_simple' => 'CodeIgniter\Pager\Views\default_simple',
'default_head' => 'CodeIgniter\Pager\Views\default_head',
'test_pager' => 'App\Views\Pagers\test_pager',
];3. Model
그룹명을 부여해준다.
ex) paginate(10,'group1');
<?php namespace App\Models; use CodeIgniter\Model; class PageModel extends Model { protected $table = 'TABLE'; public function getData(){ $this->builder() ->select('QUERY'); $this->builder() ->where("조건필드","조건"); $this->builder() ->orderBy("정렬","desc"); return [ 'data' => $this->paginate(10,'group1'), 'pager' => $this->pager ]; } }
4. View
그룹명 및 커스텀페이징 명을 추가한다.
ex) $pager->links('group1','test_pager');
<div class="row"> <div class='dataTables_paginate paging_simple_numbers' id="dataTable_paginate"> <ul class='pagination' > <?php echo $pager->links('group1','test_pager');?> </ul> </div> </div>
728x90반응형'CI4' 카테고리의 다른 글
ci 페이지 이동 (리디렉션) (0) 2022.08.05 ci4 윈도우 테스트 환경 페이지 느려짐 (0) 2022.08.02 ci 트랜잭션 (0) 2022.07.21 ci paginate 페이징처리 (0) 2022.07.15 ci 세션 (0) 2022.07.08 - Views/ 하단에 폴더 생성