ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ci paginate 페이징처리
    CI4 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
    반응형

    '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

    댓글

Designed by Tistory.