修正Thinkphp 3.2 分页Page类以支持URL路由

http://www.thinkphp.cn/topic/22114.html

最终目的实现以http://www.fl900.com/product/lists/1-0-0-1.html这样的URL形式且支持分页。

路由配置:

‘/^product\/lists\/(\d+)-(\d+)-(\d+)-(\d+)$/‘  => ‘Product/lists?id=:1&aid=:2&sid=:3&p=:4‘,

修正Library\Think\Page.class.php分类以支持路由

    //在23行,修改访问修饰符private为public
    public $url=‘‘;
    //在70行,防止经过传参后会出现问题urlencode(‘[PAGE]‘)转为小写,修改为
    $this->url = str_replace(strtolower(urlencode(‘[PAGE]‘)), $page, $this->url);//开启URL不区分大小写时处理
    return str_replace(urlencode(‘[PAGE]‘), $page, $this->url);
    //在80行,修正为以下实现自定义URL
    /* 生成URL */
            if(empty($this->url)){
                $this->parameter[$this->p] = ‘[PAGE]‘;
                $this->url = U(ACTION_NAME, $this->parameter);
            }
    //使用示例
    $Page       = new \Think\Page($count,15);// 实例化分页类 传入总记录数和每页显示的记录数(25)
    $page_tpl = urlencode(‘[PAGE]‘);
    $Page->url   =   U("Product/list/{$this->id}-{$this->aid}-{$this->sid}-{$page_tpl}");
    $show       = $Page->show();

原文地址:https://www.cnblogs.com/lxwphp/p/9699490.html

时间: 2024-08-18 11:55:49

修正Thinkphp 3.2 分页Page类以支持URL路由的相关文章

ThinkPHP多个分页的实现

ThinkPHP 3.1.2为我们提供了 Page这个分页类,使用起来非常方便,如果一个页面只有一个分页Page类足够使用. 但多个页面就会出现问题,例如一个页面中有两个分页,都用Page类会造成其中一个的分页变化,另一个分页的页数也会跟着改变.这是由于Page类从GET请求参数中获取用户点击的页数的键值相同造成的. 这里要说明一下这个Page类的实现原理,Page类中会首先从ThinkPHP项目的配置文件中查找VAR_PAGE变量的值,此值作为分页参数的变量名,若不存在,则为p,Page类从G

ThinkPHP数据分页Page.class.php

获取分页类 ThinkPHP提供了数据分页的扩展类库Page,可以在http://www.thinkphp.cn/extend/241.html下载,或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含分页扩展类了.把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面. 当然,扩展类库的位置其实比较随意,你也可以放入项目的类库目录下面,区别只是在于你

thinkphp自带分页类

thinkphp自带分页使用案例: $Data = M('Data'); // 实例化Data数据对象  date 是你的表名     import('ORG.Util.Page');// 导入分页类     $count = $Data->where($map)->count();// 查询满足要求的总记录数 $map表示查询条件     $Page = new Page($count);// 实例化分页类 传入总记录数     $show = $Page->show();// 分页显

thinkphp之ajax分页类

<?php class IndexAction extends Action { public function index() { import("@.ORG.Page"); //导入分页类 $Form = M('Form'); $list = $Form->select(); // $list = range(2,51); $param = array( 'result'=>$list, //分页用的数组或sql 'listvar'=>'list', //分

分页 page

1.根据条件计算出数据的总数 2.import(page类); 3.实例化分页类 4.设置相关的参数 5.调用show()方法 // 导入分页类  import('ORG.Util.Page');$p = new Page($numrow,2);//$numrow为总记录数,2为页的记录数.....$p->setConfig('prev',"<");    $p->setConfig('next',">");    $p->setCon

给thinkphp加个分页样式

1.css样式 1 .fpage{text-align:center;clear:both;padding-top:10px;} 2 .fpage a{font-size: 14px;border: 1px solid #ccc;padding: 3px;box-shadow: 0px 0px 3px #bbb;} 3 .fpage span.current{font-size: 14px;border: 1px solid #ccc;padding: 3px 11px;box-shadow: 

Java Web的分页工具类

最近写一个java web项目,以前分页的工具类,都是基础架构的人写好了的.也没有去细看,现在遇到这个状况. 就整理一下思路,自己写了一个分页的工具类.写的不好之处,还望斧正. 下面是我的代码: PageUtil.java 1 package util; 2 3 import java.util.Map; 4 5 /** 6 * 分页工具类 7 * @author lyh 8 * 9 */ 10 public class PageUtil { 11 private int total; //总数

ThinkPhp框架:分页查询和补充框架知识

上一篇的随笔写的是基本操作,现在可以做一些高级操作,例如有条件的查询数据,有分页的条件查询数据 一.一个条件的查询数据 查询数据自然是先要显示出数据,然后根据条件进行查询数据 (1)显示出表的数据 这个方法我还是写在了HomeController.class控制器文件中 (1.1)写了一个方法shouye() 1 2 3 4 5 6 7 public function shouye() {     $n = M("nation");   //数据库中的表     $arr = $n-&

php 之 封装分页查询类及其使用方法

分页查询的使用: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="