CakePHP에서 사용자 정의 페이지 매김을 만드는 방법은 무엇입니까?

WBOY
풀어 주다: 2023-06-04 08:52:01
원래의
981명이 탐색했습니다.

CakePHP는 개발자에게 많은 유용한 도구와 기능을 제공하는 강력한 PHP 프레임워크입니다. 그 중 하나는 페이지 매김입니다. 이를 통해 대량의 데이터를 여러 페이지로 나누어 검색과 조작을 더 쉽게 할 수 있습니다.

기본적으로 CakePHP는 몇 가지 기본 페이지 매김 방법을 제공하지만 때로는 사용자 정의 페이지 매김 방법을 만들어야 할 수도 있습니다. 이 기사에서는 CakePHP에서 사용자 정의 페이지 매김을 만드는 방법을 보여줍니다.

1단계: 사용자 정의 페이지 매김 클래스 만들기

먼저 사용자 정의 페이지 매김 클래스를 만들어야 합니다. 이 클래스는 모든 페이징 관련 로직을 처리하는 역할을 담당합니다. app/Lib/Utility 디렉토리에 CustomPaginator.php라는 새 파일을 생성하고 파일에 다음 코드를 추가합니다:

Controller->request->params['named']['page']) ? $this->Controller->request->params['named']['page'] : 1; // Set the default pagination values $perPage = 10; $start = ($page - 1) * $perPage; // Get the total count of records $count = $object->find('count', array('conditions' => $scope)); // Build the pagination data $result = array( 'count' => $count, 'perPage' => $perPage, 'page' => $page, 'totalPages' => ceil($count / $perPage), 'start' => $start, 'end' => ($start + $perPage) > $count ? $count : ($start + $perPage - 1), 'hasPrevPage' => $page > 1, 'hasNextPage' => ($start + $perPage) < $count ); // Set the pagination data in the controller $this->Controller->set('paging', $result); // Return the paginated records return $object->find('all', array('conditions' => $scope, 'limit' => $perPage, 'offset' => $start)); } }
로그인 후 복사

이 사용자 정의 페이지 매김 클래스는 CakePHP의 기본 페이지 매김 클래스 PaginatorComponent를 기반으로 합니다. 사용자 정의 페이지 매기기 논리를 구현하기 위해 paginate() 메서드를 재정의했습니다. 다음 매개변수를 사용합니다.

  • $object: 페이지를 매길 모델 객체입니다.
  • $scope: 페이지를 매길 레코드를 필터링하는 데 사용되는 쿼리 조건입니다.
  • $whitelist: 특정 쿼리 매개변수를 허용하거나 거부하는 데 사용되는 화이트리스트 배열

구현에서는 먼저 현재 페이지의 번호를 가져온 다음 페이지당 기본 레코드 수와 시작 레코드 수를 설정합니다. 다음으로 find() 메소드를 사용하여 총 레코드 수를 가져온 다음 총 페이지 수와 종료 레코드 수를 계산합니다. 마지막으로 모든 페이징 데이터를 컨트롤러의 'paging' 변수에 설정하고 페이지가 매겨진 레코드를 반환합니다.

2단계: 사용자 정의 페이지 매김 클래스 인스턴스화

이제 사용자 정의 페이지 매김 클래스를 만들었으므로 컨트롤러에서 이를 인스턴스화해야 합니다. 이렇게 하려면 컨트롤러에 다음 코드를 추가해야 합니다.

set('users', $this->CustomPaginator->paginate($this->User)); } }
로그인 후 복사

App::uses()를 사용하여 사용자 정의 페이지 매김 클래스를 로드한 다음 컨트롤러에서 인스턴스화합니다. 또한 $comComponents 및 $paginate 속성을 사용하여 컨트롤러에 사용자 정의 페이지 매김 클래스를 추가했습니다.

index() 액션에서 $CustomPaginator->paginate()를 호출하고 User 모델 객체를 전달합니다. 그런 다음 페이지가 매겨진 사용자 데이터를 뷰 변수로 설정합니다.

3단계: 페이지가 매겨진 뷰 만들기

마지막으로 페이지가 매겨진 데이터를 표시하는 뷰를 만들어야 합니다. 'views/users/index.ctp' 파일에 다음 코드를 추가하세요.

Users

로그인 후 복사

이 보기는 단순한 사용자 목록이며 페이지가 매겨진 탐색 링크를 표시합니다.

탐색 링크를 생성하기 위해 PaginatorHelper의 prev(), number() 및 next() 메서드를 사용합니다. 이 메소드는 컨트롤러에서 정의한 '$CustomPaginator' 구성 요소를 기반으로 링크를 생성합니다.

결론

사용자 정의 페이지 매김을 사용하면 특정 요구 사항을 충족할 수 있는 더 큰 제어력과 유연성을 얻을 수 있습니다. 이 기사에서는 CakePHP에서 사용자 정의 페이지 매김을 만드는 방법을 보여줍니다. 이제 이 지식을 적용하여 더욱 맞춤화된 애플리케이션을 개발할 수 있습니다.

위 내용은 CakePHP에서 사용자 정의 페이지 매김을 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!