ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)


提示

本部分内容适用于 ThinkPHP V2.0版本,在 3.0 版本中,泛路由已经变更为正则路由。如果您需要了解其他版本的路由,请参考:

  1. ThinkPHP 3.0 正则路由
  2. ThinkPHP 2.1 路由

ThinkPHP URL 泛路由

泛路由指的是对同一个路由名称提供了多个规则的支持,使得 URL 的设置更加灵活。例如:

http://www.zgguan.com/index.php/product/123 这样的 URL 地址,实际访问的地址是 http://www.zgguan.com/index.php/Products/show/product_id/123

而 http://www.zgguan.com/index.php/product/2010/10 这样的 URL 地址,实际访问的地址是http://www.zgguan.com/index.php/Products/archive/year/2010/month/10

泛路由定义及实例

泛路由语法定义

泛路由规则中需要使用PHP正则表达式来对路由进行匹配,具体语法规则如下:

return array(
    // 泛路由
    'RouteName@'=>array(
        array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),
    ),
)
提示

如果您使用的是 ThinkPHP 2.1RC 及更高版本,请同时参阅《ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更》。

泛路由使用实例

以本文开始的例子为例,泛路由配置如下:

return array(
    // 泛路由
    'product@'=>array(
        array('/^\/(\d+)$/', 'Products', 'show', 'product_id'),
	array('/^\/(\d+)\/(\d+)$/', 'Products', 'archive','year,month'),
    ),
)

泛路由规则中,使用正则表达式来匹配 URL 地址中路由名后边的字串,如下红色部分:

http://www.zgguan.com/index.php/product/2010/10

其他参数上的使用和常规路由的使用一致。

参考阅读

  1. PHP正则表达式
    ThinkPHP URL 路由功能详解与实例
    ThinkPHP URL 正则路由与实例
    ThinkPHP 使用U方法自动生成URL超链接
    ThinkPHP 2.0 URL 路由(2.0版本适用)
    ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)
    ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更
    ThinkPHP U方法中使用路由的问题与解决办法

zgguan.com(it学习网) — 提供最好的 XHTML教程DIV+CSS教程JavaScript教程PHP教程ThinkPHP教程