php教程 php手册 thinkphp实现数组分页示例

thinkphp实现数组分页示例

Jun 06, 2016 pm 08:23 PM

这篇文章主要介绍了thinkphp实现数组分页示例,需要的朋友可以参考下

在thinkphp的框架下实现分页。公司的网站基于Thinkphp框架,一直久闻thinkphp的大名,终于有机会实战了。thinkphp是MVC架构的,MVC对于任何ITers来说都不陌生,模型(model)-视图(view)-控制器(controller)。他将逻辑和数据分开处理,少了很多繁琐的过程。其实在官方的资料中已经详细的介绍了怎么分页,传送门:

可是并不适用于数据已经从DB中取出,并且转换为数组的情况,我接触PHP满打满算2个月,接触thinkphp不过3周。之前把很多时间花在了官方文档上,去熟悉thinkphp。也算是磨刀不误砍柴工吧。这里把官方文档当作比较进行阐述:

(只举文档上第一个方法):利用Page类和limit方法,代码如下:

复制代码 代码如下:


$User = M('User'); // 实例化User对象

$count= $User->where('status=1')->count();// 查询满足要求的总记录数

$Page = new \Think\Page($count,25);// 实例化分页类 传入总记录数和每页显示的记录数(25)

$show = $Page->show();// 分页显示输出

// 进行分页数据查询 注意limit方法的参数要使用Page类的属性

$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows)->select();

$this->assign('list',$list);// 赋值数据集

$this->assign('page',$show);// 赋值分页输出

$this->display(); // 输出模板

基本思想就是先计算总的记录数,然后根据所设置的每页显示的记录数来分页。使用Thinkphp封装好的Page类可以很方便的实现。实现的重点在第11行,limit方法就是按照一定的规则从查询数据中抽取数据。但是数据已经取出又怎么办呢?

我们用到了php自带的函数array_slice( )。定义在此:

其实就是数组版的limit方法。好了,工具找到了,实现就很容易了。直接上代码:

复制代码 代码如下:


public function nodeslist(){
$portal = new PortalApi;
$nodelist = $portal->getNodeLists($this->uid);

$count = count($nodelist['data']);
$p = new Page($count,10);
$lists = array_slice($nodelist['data'], $p->firstRow,$p->listRows);
$page = $p->show();
$this->assign('page',$page);
$this->assign('nodes',$lists);
$this->display();
 }

代码有删减,只保留实现细节。

第3行getNodeLists方法从数据库中取出数据并赋值给数组nodelist。

第5行count计算出数组元素的个数。

第6行为Page类传入参数。

第7行的array_slice函数代替了limit方法。原理相同。

第9行用assign方法为模版赋值。定义在此:#assign

第10行同理。

下面是view中的代码:

复制代码 代码如下:


 

{$page}

 



如果仅仅这样的话,显示出来的效果并不友好。再找出来Page类的定义:

复制代码 代码如下:


// 分页显示定制

private $config= array(

'header' => '共 %TOTAL_ROW% 条记录',

'prev' => '上一页',

'next' => '下一页',

'first'=> '第一页',

'last' => '...%TOTAL_PAGE%',

'theme'=> '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',

在页数前后加入空格。现在可以看效果了:

thinkphp实现数组分页示例

跟大背景还是挺配,,当然,可以根据自己的情况设置不同的效果。

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)