这里以 Yii 2.0 基础版为例,来介绍数据分页。
操作分页的类文件为 /basic/vendor/yiisoft/yii2/data/Pagination.php
首先,在 /basic/entity 目录中新建一个 User.php 文件,用于查询分页数据,代码如下:
db;
// 1. 获取符合条件的记录总数
$count = $db->createCommand('SELECT COUNT(*) AS count from {{%user}}')
->queryOne();
if ($count) {
// 2. 根据记录总数,实例化pagination对象
$pages = new Pagination(['totalCount'=>$count['count'], 'defaultPageSize'=>10]);
// 3. 根据pagination对象的offset和limit属性,查询记录列表
$list = $db->createCommand('SELECT * FROM {{%user}} LIMIT '.$pages->offset.','.$pages->limit)
->queryAll();
$ret = ['success'=>true, 'pages'=>$pages, 'list'=>$list];
} else {
throw new \Exception('查询失败!');
}
} catch (\Exception $e) {
$ret = ['success'=>false, 'msg'=>$e->getMessage()];
}
return $ret;
}
}
其次,在控制器层新建一个控制器文件 PageController.php,用于测试分页,代码如下:
renderPartial('test', ['list'=>$res['list'], 'pages'=>$res['pages']]);
}
}
}
然后,在视图层 /basic/views 目录下新建一个文件夹 page,再在 /basic/views/page 目录中新建一个视图文件 test.php,代码如下:
';
// 6. 显示分页导航
echo \yii\widgets\LinkPager::widget(['pagination'=>$pages]);
最后,在浏览器中访问 http://basic.com/page/test,查看分页的效果。