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
반응형