-
ci paginate 페이징처리CI4 2022. 7. 15. 08:52728x90반응형
#ci paginate 함수 사용하여 페이징 처리
Pagination : CI 에서 제공하며, 간편하게 페이징처리 할 수 있는 함수이다.
해당 함수는 수동으로 로드할 필요 없는 없다. $pager = \Config\Services::pager();
1. Controller
모델(Model)에서 데이터 리턴 받아 뷰(View)에 넘긴다.
//뷰에 넘길 배열
$data = [
'board_data' => $list['data'],
'pager' => $list['pager']
];<? namespace App\Controllers; class Page extends BaseController { public function index() { $db = db_connect('DB NAME'); $pageModel = model('App\Models\PageModel',true,$db); $list = $pageModel ->getData(); $data = [ 'board_data' => $list['data'], 'pager' => $list['pager'] ]; } }
2. Model
페이징 처리할 데이터를 가져온다.
쿼리 빌더(builder) 를 통해서 쿼리 실행하여 데이터 가져온다.(직접 쿼리 실행으로 pager 정보가 없는거 같다)
컨트롤러(Controller)에 데이터 및 pager 정보 리턴 시킨다.
paginate(페이지당 보여질 수, 커스텀그룹명)
return [
'data' => $this->paginate(10),
'pager' => $this->pager
];<?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), 'pager' => $this->pager ]; } }
3. View
모델(Model)에서 가져온 데이터를 컨트롤러(Controller)를 통해 뷰(View)로 전달한다.
links() : 페이징 뷰화면
links(커스텀그룹명, 커스텀페이징명) : 커스텀 페이징 뷰화면
$pager->links()
<div class="row"> <div class='dataTables_paginate paging_simple_numbers' id="dataTable_paginate"> <ul class='pagination' > <?php echo $pager->links();?> </ul> </div> </div>
728x90반응형'CI4' 카테고리의 다른 글
ci4 윈도우 테스트 환경 페이지 느려짐 (0) 2022.08.02 ci 트랜잭션 (0) 2022.07.21 ci 세션 (0) 2022.07.08 ci 사용자 라이브러리 (0) 2022.07.07 ci 쿼리 결과 가져오기 (0) 2022.07.06