CI4
ci paginate 페이징처리
수수깡깡
2022. 7. 15. 08:52
728x90
반응형
#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
반응형