>백엔드 개발 >PHP 튜토리얼 >ThinkPHP 3.2 데이터 페이징 코드 Sharing_php 예제

ThinkPHP 3.2 데이터 페이징 코드 Sharing_php 예제

WBOY
WBOY원래의
2016-05-16 20:34:49881검색

TP3.2 프레임워크 매뉴얼에는 데이터 페이징이 있지만 매번 너무 많은 코드를 작성해야 하고, 중국어 설정 등의 문제가 있어 정리가 필요합니다.

오. 먼저 렌더링을 살펴보겠습니다

1. 페이징 방법

코드 복사 코드는 다음과 같습니다.

/**
* TODO 기본 페이징과 동일한 코드 캡슐화로 프런트 엔드 코드가 줄어듭니다
* @param $m 모델, 참조로 전달
* @param $where 쿼리 조건
* @param int $pagesize 페이지당 쿼리 수
* @return ThinkPage
​*/
함수 getpage(&$m,$where,$pagesize=10){
$m1=clone $m;//모델의 얕은 복사본
$count = $m->where($where)->count();//연속 작업 후 Join 및 기타 작업은 재설정됩니다
$m=$m1;//특정 연속 작업을 유지하려면 모델을 얕게 복사하세요
$p=new ThinkPage($count,$pagesize);
$p->lastSuffix=false;
$p->setConfig('header','
  • 페이지당 총%TOTAL_ROW%레코드%LIST_ROW% 기사 %NOW_PAGE%페이지/전체%TOTAL_PAGE%페이지');
    $p->setConfig('prev','이전 페이지');
    $p->setConfig('다음','다음 페이지');
    $p->setConfig('마지막','마지막 페이지');
    $p->setConfig('첫번째','홈페이지');
    $p->setConfig('테마','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');

    $p->parameter=I('get.');

    $m->limit($p->firstRow,$p->listRows);

    $p 반환
    }

  • getpage 메소드는 TP 프레임워크의 Application/Common/Common/function.php에 배치할 수 있습니다. 이 문서는 어디에서나 호출할 수 있는 몇 가지 공통 메소드(예: 컨트롤러 파일, 뷰 파일 등)를 구체적으로 배치할 수 있습니다. ).

    2. 페이징 메소드 호출

    코드 복사 코드는 다음과 같습니다.

    $m=M('제품');
    $p=getpage($m,$where,10);
    $list=$m->field(true)->where($where)->order('id desc')->select();
    $this->list=$list;
    $this->page=$p->show();
    그런 다음 보기 코드


    셋째, 페이징 스타일입니다. 배경 프레임워크가 인터넷에서 다운로드되었기 때문에 아직 스타일이 정리되지 않았습니다. 이 스타일은 직접 구현할 수도 있습니다. .

    코드 복사 코드는 다음과 같습니다.

    .페이지 매김 ul {
        디스플레이: 인라인 블록;
        여백-하단: 0;
        왼쪽 여백: 0;
        -webkit-border-radius: 3px;
        -moz-국경-반경: 3px;
        테두리 반경: 3px;
        -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
        상자 그림자: 0 1px 2px rgba(0,0,0,0.05);
    }
    .pagination ul li {
      디스플레이: 인라인;
    }

    .pagination ul li.rows {
        줄 높이: 30px;
        왼쪽 패딩: 5px;
    }
    .pagination ul li.rows b{color: #f00}

    .pagination ul li a, .pagination ul lispan {
        부동: 왼쪽;
        패딩: 4px 12px;
        줄 높이: 20px;
        텍스트 장식: 없음;
        배경색: #fff;
        배경: url('../images/bottom_bg.png') 0px 0px;
        테두리: 1px 솔리드 #d3dbde;
        /*테두리 왼쪽 너비: 0;*/
        여백 왼쪽: 2px;
        색상: #08c;
    }
    .pagination ul li a:hover{
        색상: 빨간색;
        배경: #0088cc;
    }
    .pagination ul li.first-child a, .pagination ul li.first-child 스팬 {
        테두리 왼쪽 너비: 1px;
        -webkit-border-bottom-left-radius: 3px;
        테두리 하단 왼쪽 반경: 3px;
        -webkit-border-top-left-radius: 3px;
        테두리 상단 왼쪽 반경: 3px;
        -moz-border-radius-bottomleft: 3px;
        -moz-border-radius-topleft: 3px;
    }
    .pagination ul .disabled 범위, .pagination ul .disabled a, .pagination ul .disabled a:hover {
    색상: #999;
    커서: 기본값;
    배경색: 투명;
    }
    .pagination ul .active a, .pagination ul .active 스팬 {
    색상: #999;
    커서: 기본값;
    }
    .pagination ul li a:hover, .pagination ul .active a, .pagination ul .activespan {
    배경색: #f0c040;
    }
    .pagination ul li.last-child a, .pagination ul li.last-child 스팬 {
        -webkit-border-top-right-radius: 3px;
        테두리 오른쪽 상단 반경: 3px;
        -webkit-border-bottom-right-radius: 3px;
        테두리 하단 오른쪽 반경: 3px;
        -moz-border-radius-topright: 3px;
        -moz-border-radius-bottomright: 3px;
    }

    .pagination ul li.current a{color: #f00 ;font-weight:bold; 배경: #ddd}

    성명:
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.