首页 > PHP资讯 > PHP培训技术 > ThinkPHP2.0泛路由使用详解(2.0版本适用)

ThinkPHP2.0泛路由使用详解(2.0版本适用)

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

ThinkPHP 3.0 正则路由
ThinkPHP 2.1
路由

ThinkPHP URL 泛路由

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

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


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

泛路由定义及实例
泛路由语法定义

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




  1. return array(
  2. // 泛路由
  3. 'RouteName@'=>array(
  4. array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),
  5. ),
  6. )

提示

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

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




  1. return array(
  2. // 泛路由
  3. 'product@'=>array(
  4. array('/^/(d+)$/', 'Products', 'show', 'product_id'),
  5. array('/^/(d+)/(d+)$/', 'Products', 'archive','year,month'),
  6. ),
  7. )

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

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

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

参考阅读

PHP正则表达式

PHP培训技术

本文由欣才IT学院整理发布,未经许可,禁止转载。
支持1不支持0