질문 Q #22885
pager 질문드립니다.
Austin 2020-11-19 10:45:44

안녕하세요 CI4 버전으로 이것저것 만져보는 중에 pagination 을 하려고 document를 보면서 진행하고 있습니다.

현재 저는 model 을 거치지 않고 controller 에서 바로 db 에 접근하여 데이터를 view 로 전달하고 있습니다.

근데 document를 보니 paginate 가 내장함수라고 되어있고, $model 이라는 인스턴스를 새로 받아서 pagination을 진행하더라구요.

저는 따로 model 을 사용하지 않아서 instance를 생성할게 없구요.

 

질문입니다.

1. paginate가 내장되어있다는데 어떻게 사용할 수 있나요?

2. 새로운 인스턴스를 받지 않고 사용하는 방법이 있나요?

답변 7
#1 테러보이 2020-11-19 10:58:16

모델을 사용한 페이징

# 컨트롤러

// 검색 정리
$where = [];
$where_like = [];

// 데이터 출력
$data['list'] = $this->uModelAccountBank->where($where)->like($where_like)->orderBy('idx', 'desc')->paginate(); // paginate(default 20)
$data['pager'] = $this->uModelAccountBank->pager;
$data['pager_info'] = $data['pager']->getDetails();

# 뷰

<?php
echo $pager->makeLinks($pager_info['currentPage'], $pager_info['perPage'], $pager_info['total'], 'default');
?>

 

쿼리빌더는 잘 모르겠네요.

#2 Austin 2020-11-19 11:00:42

@테러보이

답변 감사드립니다.

혹시 모델을 사용하지 않고는 pager를 사용하는 방법은 없을까요..?!

#3 PureAni 2020-11-19 11:05:37
https://codeigniter4.github.io/userguide/libraries/pagination.html?highlight=pager#manual-pagination
#4 테러보이 2020-11-19 11:08:29

@Austin

개인적으로 방법을 못찾겠네요.

ci3처럼 페이징을 써야겠네요.

 

전 모델 사용을 권장 드립니다 ㅎㅎㅎ

#5 Austin 2020-11-19 11:42:17

@PureAni 

답변 감사합니다.

찾아봤는데 다 모델 사용하는것 같아서요 ㅠ

@테러보이

답변 감사합니다.

한번 해봐야겠네요!ㅜㅜ

#6 PureAni 2020-11-19 11:58:41

@Austin

pager 서비스 가져와서 총 게시글 수와 한페이지당 보여줄 게시글 수 현재 페이지 그리고 템플릿만 지정하면 나오는거라 모델 사용 안합니다.

모델에서 저 pager 를 사용해서 만들기는 합니다.

#7 Austin 2020-11-19 13:07:30

@PureAni

답변 감사합니다.

시도해보겠습니다!