ThinkPhp에서 Pagination 구현 ThinkPHP는 ThinkPHP는 여러 페이지 전반에 걸쳐 대규모 데이터 세트를 표시하는 프로세스를 단순화하는 기능을 제공합니다. 핵심 기능은
클래스에 의존합니다. 데이터베이스 쿼리 빌더의 ThinkPaginator
메소드를 통해 주로 상호 작용할 것입니다. paginate()
라는 모델이 있다고 가정 해 봅시다. 다음은 다음과 같이 할 수있는 방법이 있습니다.
테이블에서 기사를 가져오고 페이지 당 15 개의 기사로 페이지를 가져옵니다. Article
메소드는 페이지 진화 데이터 및 페이지 매김 링크를 포함하는 A
<code class="php">use think\Db; // Fetch articles with pagination $articles = Db::name('article')->paginate(15); // 15 articles per page // Assign the paginated data to the template variable $this->assign('articles', $articles); // Render the view return $this->fetch();</code>변수는 이제 현재 페이지의 기사와 Pagination Information을 모두 보유하고 있습니다. 이 정보는 ThinkPhp의 기본 템플릿 엔진을 사용하는 경우 변수를 사용하여보기 내에서 자동으로 렌더링됩니다. 여기에는 이전 페이지 및 다음 페이지에 대한 링크와 페이지 번호가 포함됩니다. 기본보기 렌더링이이를 처리합니다. Pagination을 수동으로 렌더링하려면
. 다행히도 광범위하게 사용자 정의 할 수 있습니다. 주로 ThinkPhp에서 Pagination을 구현할 때 피할 수있는 일반적인 함정 paginate() article
객체의 paginate()
메소드를 통해이를 달성 할 수 있으며 템플릿 변수를 사용하여이를 달성 할 수 있습니다. Paginator
$articles
메소드는 모양을 제어하기 위해 여러 매개 변수를 수용합니다. 이를 통해 목록 스타일, 표시된 페이지 링크 수 및 링크 텍스트와 같은 Pagination 링크의 다양한 측면을 수정할 수 있습니다. 구성 가능한 옵션의 전체 목록에 대해서는 ThinkPhp 문서를 참조하십시오. {$articles}
예 : Paginator
이렇게하면 부트 스트랩 스타일의 페이지 매김이 사용됩니다. 외관을 완전히 제어 할 수 있도록 고유 한 사용자 정의 페이지 매김 템플릿을 만들 수 있습니다. 여기에는 사용자 정의보기 파일을 작성하고 구성에서 경로를 지정하는 것이 포함됩니다. ThinkPHP는 주로 위에서 설명한 데이터베이스 중심의 페이지 매김 접근법을 사용합니다. 이것은 현재 페이지의 데이터 만 검색하므로 대형 데이터 세트의 가장 효율적인 방법입니다. 대체 알고리즘의 의미에서 공식적으로 지원되는 다른 "방법"은 없습니다. 그러나 맞춤 페이지 매김 로직을 구현할 수는 있지만 내장
메소드가 처리 할 수없는 매우 구체적인 요구 사항이 없다면 일반적으로 권장되지 않습니다. 예를 들어, 덩어리에서 데이터를 가져 와서 매우 큰 데이터 세트에 대한 페이지 매김을 수동으로 처리 할 수 있지만, 이는 복잡성과 잠재적 성능 문제가 추가됩니다. 데이터 페치 : 데이터베이스 query를 수정하는 데 따른 데이터를 수정합니다. 조항 또는 조인의 오류는 잘못된 페이지 매김 결과로 이어질 수 있습니다.
누락 또는 잘못된 템플릿 변수 : 항상 템플릿에
WHERE
출력)를 올바르게 할당하고 Pagination Links를 렌더링하기 위해 변형합니다. 매개 변수 : 애플리케이션이 필터링 또는 정렬을위한 URL 매개 변수에 의존하는 경우, Pagination 링크가 이러한 매개 변수를 올바르게 통합하여 페이지 전체에 상태를 유지하기 위해 이러한 매개 변수를 올바르게 통합해야합니다. 인덱스와 적절한
위 내용은 ThinkPhp에서 페이징 튜토리얼을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!