超好用的thinkphp5.0/thinkphp5.1分页插件!详细使用步骤(内附代码)
效果
tp5.0使用方法
page下载地址:进入下载页面 提取码:s75k
- 1,把page文件夹整个目录复制到 目录extend下
- 2,修改默认配置 app/config.php
- 把里面的
- 'paginate' => [
- 'type' => 'page\Page',//修改这个 原始为bootstrap
- 'var_page' => 'page',
- 'list_rows' => 5,
- ],
- 3,控制器中 ,参考一下
- $name=$request->param('name');//接受参数一定要用param接收 可以接收post和get
- $where=[['status','eq',1]];
- if (!empty($name)){
- $where[]=['name','like',"%$name%"];
- }
- $delList=Db::table('staff')
- ->where($where)
- ->order('id asc')
- ->paginate(4,false,['query'=>$request->param()]);
- 4,视图中
- {$delList->render()}
tp5.1使用方法
- 1,把page文件夹整个目录复制到 目录extend下
- 2,控制器中的方法
- public function index(Request $request)
- {
- $name=$request->param('name');//接受参数一定要用param接收 可以接收post和get
- $where=[['status','eq',1]];
- if (!empty($name)){
- $where[]=['name','like',"%$name%"];
- }
- $list=Db::table('staff')
- ->where($where)
- ->order('id asc')
- ->paginate(12,false,['query'=>$request->param(),'type' => 'page\Page','var_page' => 'page']);
- $page=$list->render();
- //paginate第一个参数为每页显示的条数
- //paginate第二个参数为简单模式或总数
- //paginate第三个参数为分页的条件 也可以写数组
- //总条数
- $allData=Db::table('staff')->where('status',1)->count();
- $this->assign('list',$list);
- $this->assign('page',$page);
- $this->assign('count',$allData);
- return $this->fetch('staff-list');
- }
- 3,视图中,一定要写raw,具体含义看文档
- {$page|raw}
Page.php 如下图
- <?php
- namespace page;
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: zhangyajun <448901948@qq.com>
- // +----------------------------------------------------------------------
- use think\Paginator;
- class Page extends Paginator
- {
- //首页
- protected function home() {
- if ($this->currentPage() > 1) {
- return "<a href='" . $this->url(1) . "' title='首页'>首页</a>";
- } else {
- return "<p>首页</p>";
- }
- }
- //上一页
- protected function prev() {
- if ($this->currentPage() > 1) {
- return "<a href='" . $this->url($this->currentPage - 1) . "' title='上一页'>上一页</a>";
- } else {
- return "<p>上一页</p>";
- }
- }
- //下一页
- protected function next() {
- if ($this->hasMore) {
- return "<a href='" . $this->url($this->currentPage + 1) . "' title='下一页'>下一页</a>";
- } else {
- return"<p>下一页</p>";
- }
- }
- //尾页
- protected function last() {
- if ($this->hasMore) {
- return "<a href='" . $this->url($this->lastPage) . "' title='尾页'>尾页</a>";
- } else {
- return "<p>尾页</p>";
- }
- }
- //统计信息
- protected function info(){
- return "<p class='pageRemark'>共<b>" . $this->lastPage .
- "</b>页 <b>" . $this->total . "</b>条数据</p>";
- }
- /**
- * 页码按钮
- * @return string
- */
- protected function getLinks()
- {
- $block = [
- 'first' => null,
- 'slider' => null,
- 'last' => null
- ];
- $side = 3;
- $window = $side * 2;
- if ($this->lastPage < $window + 6) {
- $block['first'] = $this->getUrlRange(1, $this->lastPage);
- } elseif ($this->currentPage <= $window) {
- $block['first'] = $this->getUrlRange(1, $window + 2);
- $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
- } elseif ($this->currentPage > ($this->lastPage - $window)) {
- $block['first'] = $this->getUrlRange(1, 2);
- $block['last'] = $this->getUrlRange($this->lastPage - ($window + 2), $this->lastPage);
- } else {
- $block['first'] = $this->getUrlRange(1, 2);
- $block['slider'] = $this->getUrlRange($this->currentPage - $side, $this->currentPage + $side);
- $block['last'] = $this->getUrlRange($this->lastPage - 1, $this->lastPage);
- }
- $html = '';
- if (is_array($block['first'])) {
- $html .= $this->getUrlLinks($block['first']);
- }
- if (is_array($block['slider'])) {
- $html .= $this->getDots();
- $html .= $this->getUrlLinks($block['slider']);
- }
- if (is_array($block['last'])) {
- $html .= $this->getDots();
- $html .= $this->getUrlLinks($block['last']);
- }
- return $html;
- }
- /**
- * 渲染分页html
- * @return mixed
- */
- public function render()
- {
- if ($this->hasPages()) {
- if ($this->simple) {
- return sprintf(
- '%s<div class="pagination">%s %s %s</div>',
- $this->css(),
- $this->prev(),
- $this->getLinks(),
- $this->next()
- );
- } else {
- return sprintf(
- '%s<div class="pagination">%s %s %s %s %s %s</div>',
- $this->css(),
- $this->home(),
- $this->prev(),
- $this->getLinks(),
- $this->next(),
- $this->last(),
- $this->info()
- );
- }
- }
- }
- /**
- * 生成一个可点击的按钮
- *
- * @param string $url
- * @param int $page
- * @return string
- */
- protected function getAvailablePageWrapper($url, $page)
- {
- return '<a href="' . htmlentities($url) . '" title="第"'. $page .'"页" >' . $page . '</a>';
- }
- /**
- * 生成一个禁用的按钮
- *
- * @param string $text
- * @return string
- */
- protected function getDisabledTextWrapper($text)
- {
- return '<p class="pageEllipsis">' . $text . '</p>';
- }
- /**
- * 生成一个激活的按钮
- *
- * @param string $text
- * @return string
- */
- protected function getActivePageWrapper($text)
- {
- return '<a href="" class="cur">' . $text . '</a>';
- }
- /**
- * 生成省略号按钮
- *
- * @return string
- */
- protected function getDots()
- {
- return $this->getDisabledTextWrapper('...');
- }
- /**
- * 批量生成页码按钮.
- *
- * @param array $urls
- * @return string
- */
- protected function getUrlLinks(array $urls)
- {
- $html = '';
- foreach ($urls as $page => $url) {
- $html .= $this->getPageLinkWrapper($url, $page);
- }
- return $html;
- }
- /**
- * 生成普通页码按钮
- *
- * @param string $url
- * @param int $page
- * @return string
- */
- protected function getPageLinkWrapper($url, $page)
- {
- if ($page == $this->currentPage()) {
- return $this->getActivePageWrapper($page);
- }
- return $this->getAvailablePageWrapper($url, $page);
- }
- /**
- * 分页样式
- */
- protected function css(){
- return ' <style type="text/css">
- .pagination p{
- margin:0;
- cursor:pointer
- }
- .pagination{
- height:40px;
- padding:20px 0px;
- }
- .pagination a{
- display:block;
- float:left;
- margin-right:10px;
- padding:2px 12px;
- height:24px;
- border:1px #cccccc solid;
- background:#fff;
- text-decoration:none;
- color:#808080;
- font-size:12px;
- line-height:24px;
- }
- .pagination a:hover{
- color:#077ee3;
- background: white;
- border:1px #077ee3 solid;
- }
- .pagination a.cur{
- border:none;
- background:#077ee3;
- color:#fff;
- }
- .pagination p{
- float:left;
- padding:2px 12px;
- font-size:12px;
- height:24px;
- line-height:24px;
- color:#bbb;
- border:1px #ccc solid;
- background:#fcfcfc;
- margin-right:8px;
- }
- .pagination p.pageRemark{
- border-style:none;
- background:none;
- margin-right:0px;
- padding:4px 0px;
- color:#666;
- }
- .pagination p.pageRemark b{
- color:red;
- }
- .pagination p.pageEllipsis{
- border-style:none;
- background:none;
- padding:4px 0px;
- color:#808080;
- }
- .dates li {font-size: 14px;margin:20px 0}
- .dates li span{float:right}
- </style>';
- }
- }
-----------------------------------------------------------------------
优化如下:
超好用的thinkphp5.0/thinkphp5.1分页插件!详细使用步骤(内附代码)的更多相关文章
- 基于Thinkphp5.0 小程序登录插件应用
资源连接: wulongtao/think-wxminihelper 具体怎么安装,不介绍了,有不懂再问我吧: 主要重点如下: wepy:index.wpy this.$parent.getUserI ...
- thinkphp5.0使用官方验证码插件
1.首先使用Composer下载验证码插件. 安装完成后,使用以下命令修改composer配置文件,使用国内镜像.原因你懂的. composer config -g repo.packagist co ...
- MyBatis3.4.0以上的分页插件错误:Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named prepare. Cause: java.lang.NoSuchMethodException: org.apache.ibatis.executor.stateme
错误: Could not find method on interface org.apache.ibatis.executor.statement.StatementHandler named p ...
- 高性能PHP框架thinkphp5.0.0 Beta发布-为API开发而设计
ThinkPHP V5.——为API开发而设计的高性能框架 ThinkPHP5..0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载 ...
- thinkphp5.0 自动加载
自动加载 概述 ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载. 自动加载的实现由think\Loader类库完成,自动加载规范符 ...
- ThinkPHP5.0中Redis的使用和封装(原创)
Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射.它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不 ...
- thinkphp5.0学习笔记(三)获取信息,变量,绑定参数
1.构造函数: 控制器类必须继承了\think\Controller类,才能使用: 方法_initialize 代码: <?php namespace app\lian\controller; ...
- Thinkphp5.0 在自己定义一个公共方法的控制器并且继承了Controller类的时候报错
在建立网站的时候,你通常想着把一些共有的方法提取出来,放入一个控制器内,如果你是将业务逻辑写入了构造函数里面,那么就得注意了. 在thinkphp5.0当中,有一个初始化的方法,类似于构造函数,那就是 ...
- thinkphp5.0无限极分类及格式化输出
首先我们来看数据表 从上图中可以发现,中国下有贵州,北京两个子节点,而北京有天安门一个子节点,纽约的子节点是"纽约的子类". 从pid为0看出,中国和纽约是顶级节点. 因为贵州的p ...
随机推荐
- paper 133:结构张量Structure Tensor(一)
1.结构张量的作用: 能够区分图像中的平坦区域,边缘,角点: 2.图像中的结构张量的定义 1)是一个矩阵: 2)与图像的水平,垂直梯度有关,定义如下: 在MATLAB中,可以用 ...
- nginx 全面优化 负载均衡
修改nginx.conf文件,它保存有nginx不同模块的全部设置.如果是原生安装的话应该在服务器的 /etc/nginx 目录找到 nginx.conf ,使用其它安装包的话也可以自行查找nginx ...
- send_keys报错element not interactable
这两天要在阿里云日志中操作UI,以输入关键字搜索日志. 在send_keys时报错element not interactable. iframe 第一个问题是iframe,通过切换iframe解决: ...
- C#基本语法1 ----> 实例
| 版权声明:本文为博主原创文章,未经博主允许不得转载. ///////////////////////////////////////////////////////////////////// ...
- CentOS6.5源码安装MySQL5.6.35
CentOS6.5源码安装MySQL5.6.35 一.卸载旧版本 1.使用下面的命令检查是否安装有mysql [root@localhost tools]# rpm -qa|grep -i mysql ...
- MATLAB图像uint8,uint16,double, rgb转灰度解释
1.uint8,uint16与double 为了节省存储空间,matlab为图像提供了特殊的数据类型uint8(8位无符号整数),以此方式存储的图像称作8位图像.matlab读入图像的数据是uint8 ...
- Pyhon 格式化输出的几种方式
废话不多说,直接上代码 第一种格式化的输出方式,拼接我就不上了,不建议使用,数据多的时候自己都蒙圈 # -*- coding:utf-8 -*- # Author:覃振鸿 #格式化输出 name=in ...
- InnoDB B树 锁
InnoDB B树 叶子=>主键+数记录非叶子=>主键1+主键3...主键4 事务和行锁 索引项加锁 相等条件来访问更新数据,避免使用范围条件 (1)InnoDB的行销是基于索引实现的,如 ...
- 4、服务注册&服务提供者
1.什么是服务提供者 服务提供者(Service Provider):是指服务的被调用方(即:为其它服务提供服务的服务):服务提供者,作为一个Eureka Client,向Eureka Server做 ...
- 使用androidstudio时遇到的一些小错误
1 路径名字中不能有汉字 报如下错误:Error:(1, 0) Your project path contains non-ASCII characters. This will most lik ...