腾讯云618限量抢购
  1. PHP基础教程
  2. PHP+MySQL数据库教程

ThinkPHP 使用U方法自动生成URL超链接

最后更新:2012-07-11 00:33阅读:39248

ThinkPHP U方法

U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。

由于 ThinkPHP 支持各种不同的 URL 模式,另外还有项目分组模式,因此当部署环境发生变化时,有时候可能会改变 URL 模式,而 U 方法正是解决不同环境配置情况下的 URL 统一问题。除了动态生成 URL 以自适应系统配置外,U 方法还有一个好处是可以自动加上伪静态后缀。

U 方法语法

U 方法的定义规则如下:

('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名'])

方括号内为可选参数,如果不指明分组、模块以及操作的话,就默认为当前分组、当前模块与当前操作。

U方法实例

U 方法作为 ThinkPHP 的系统函数,可以直接用于操作方法中,也可用于模板中(见后面文字)。

假设当前为 Index 模块的 index 操作,生成当前模块的 list 操作 URL:

U('list?cat_id=1&status=1')

生成的 URL 为相对链接:http://www.5idev.com/index.php/Index/list/cat_id/1/status/1

同时 U 方法还支持下面两种定义格式,上面的例子与下面的定义格式是等效的:

U'list',array('cate_id'=>1,'status'=>1))
U'list','cate_id=1&status=1')

模板中使用 U 方法

U 方法不仅能在操作方法中动态生成 URL 地址,其实更常用的是在模板中生成超链接地址:

<a href="{:U('list?cat_id=1&status=1')}">超链接字符</a>

生成 URL 后实际的 html 代码为:

// Pathinfo 模式:
<a href="http://www.5idev.com/lindex.php/blog/list/cat_id/1/status/1">超链接字符</a>

U 方法属于 ThinkPHP 系统函数,遵循在模板中使用系统函数的通用方法,即配合 {: } 使用,具体可见《ThinkPHP 模板中使用函数》。

U 方法中使用变量

使用于模板中的 U 方法,如果要使用变量(通常如此),需要用 . 连接符:

<a href="{:U('blog/list?cat_id='.$vo['cat_id'].'&status=1')}">超链接字符</a>

各种 URL 模式下的 U 方法结果对比

U 方法根据各种 URL 模式而自适应的生成不同的 URL 格式,如上面例子在各模式下生成的 URL 对比如下:

  • 普通兼容模式:http://www.5idev.com/index.php?m=Index&a=list&cat_id=1&status=1
  • Pathinfo 模式:http://www.5idev.com/index.php/Index/list/cat_id/1/status/1
  • Rewrite 模式:http://www.5idev.com/Index/list/cat_id/1/status/1
  • Rewrite 模式,伪静态后缀为 .html:http://www.5idev.com/Index/list/cat_id/1/status/1.html
  • Rewrite 模式,使用 - 分隔符与 .html 后缀:http://www.5idev.com/Index-list-cat_id-1-status-1.html

常见 U 方法使用例子

// 当前模块 list 操作
U('list?cat_id=1&status=1')
// 其他模块操作
U('Blog/read?id=1')        // 生成Blog模块的read操作,并且id为1的URL地址
// 其他分组
U('Admin/User/view?uid=1')    // 生成Admin分组的User模块的view操作的URL地址

本章节内容共分 7 部分:
  1. 1. ThinkPHP URL 路由功能详解与实例
  2. 2. ThinkPHP 2.0 泛路由使用详解(2.0 版本适用)
  3. 3. ThinkPHP 2.1 版本 URL 路由规则对比 2.0 版本的变更
  4. 4. ThinkPHP 使用U方法自动生成URL超链接
  5. 5. ThinkPHP U方法中使用路由的问题与解决办法
  6. 6. ThinkPHP URL 正则路由与实例
  7. 7. ThinkPHP 2.0 URL 路由(2.0版本适用)
腾讯云618限量抢购