U 方法作为 ThinkPHP 的系统函数,可以直接用于操作方法中,也可用于模板中(见后面文字)。
假设当前为 Index 模块的 index 操作,生成当前模块的 list 操作 URL:
U('list?cat_id=1&status=1')
生成的 URL 为相对链接:http://www.520mg.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 方法不仅能在操作方法中动态生成 URL 地址,其实更常用的是在模板中生成超链接地址:
<a href="{:U('list?cat_id=1&status=1')}">超链接字符</a>
生成 URL 后实际的 html 代码为:
// Pathinfo 模式: <a href="http://www.520mg.com/lindex.php/blog/list/cat_id/1/status/1">超链接字符</a>
U 方法属于 ThinkPHP 系统函数,遵循在模板中使用系统函数的通用方法,即配合 {: } 使用,具体可见《ThinkPHP 模板中使用函数》。
使用于模板中的 U 方法,如果要使用变量(通常如此),需要用 . 连接符:
<a href="{:U('blog/list?cat_id='.$vo['cat_id'].'&status=1')}">超链接字符</a>
U 方法根据各种 URL 模式而自适应的生成不同的 URL 格式,如上面例子在各模式下生成的 URL 对比如下:
// 当前模块 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地址