ThinkPHP中U方法的使用浅析


Posted in PHP onJune 13, 2014

thinkPHP中U方法的定义规则如下(方括号内参数根据实际应用决定):

U('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N]')
或者用数组的方式传入参数:
U('[项目://][路由@][分组名-模块/]操作',array('参数1'=>'值1' [,'参数N'=>'值N']))

如果不定义项目和模块的话 就表示当前项目和模块名称,下面是一些简单的例子:

U('Myapp://User/add') // 生成Myapp项目的User模块的add操作的URL地址
U('Blog/read?id=1') // 生成Blog模块的read操作并且id为1的URL地址
U('Admin-User/select') // 生成Admin分组的User模块的select操作的URL地址

参数请确保使用 ?id=1&name=tp或者数组的方式来定义,虽然有些情况下U('Blog/read/id/1')和U('Blog/read?id=1')的效果一样,但是在不同的URL设置情况下,会导致解析的错误。

根据项目的不同URL设置,同样的U方法调用可以智能地对应产生不同的URL地址效果,例如针对U('Blog/read?id=1')这个定义为例。

如果当前URL设置为普通模式的话,最后生成的URL地址是:
HTUhttp://<serverName>/index.php?m=Blog&a=read&id=1UTH

如果当前URL设置为PATHINFO模式的话,同样的方法最后生成的URL地址是:
HTUhttp://<serverName>/index.php/Blog/read/id/1UTH

如果当前URL设置为REWRITE模式的话,同样的方法最后生成的URL地址是:
HTUhttp://<serverName>/Blog/read/id/1UTH

如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为.html的话,同样的方法最后生成的URL地址是:
HTUhttp://<serverName>/Blog/read/id/1.htmlUTH

此外,U方法还可以支持路由,如果我们定义了一个名称为View的路由,指向Blog模块的read操作,参数是id,那么U('View@?id=1')生成的URL地址是:
HTUhttp://<serverName>/index.php/View/id/1UT

注意:U方法的路由支持 仅支持简单路由,不支持泛路由和正则路由

PHP 相关文章推荐
实现php加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
php实现对两个数组进行减法操作的方法
Apr 17 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
PHP中的print_r 与 var_dump 输出数组
Jun 13 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
php生成二维码不保存服务器还有下载功能的实现代码
Aug 09 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
PHP 实现base64编码文件上传出现问题详解
Sep 01 PHP
PHP实现单例模式最安全的做法
Jun 13 #PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 #PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 #PHP
PHP中多维数组的foreach遍历示例
Jun 13 #PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 #PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 #PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 #PHP
You might like
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
laravel框架学习笔记之组件化开发实现方法
2020/02/01 PHP
PHP设计模式入门之状态模式原理与实现方法分析
2020/04/26 PHP
JavaScript中的Window窗口对象
2008/01/16 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
利用a标签自动解析URL分析网址实例
2014/10/20 Javascript
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
jQuery 生成svg矢量二维码
2016/08/09 Javascript
ES6所改良的javascript“缺陷”问题
2016/08/23 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
vue debug 二种方法
2018/09/16 Javascript
微信小程序实现发送验证码按钮效果
2018/12/20 Javascript
详解vue引入子组件方法
2019/02/12 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
CKEditor扩展插件:自动排版功能autoformat插件实现方法详解
2020/02/06 Javascript
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
python创建属于自己的单词词库 便于背单词
2019/07/30 Python
pytorch中图像的数据格式实例
2020/02/11 Python
python 中的paramiko模块简介及安装过程
2020/02/29 Python
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
网络工程系信息安全技术专业大学生求职信
2013/10/22 职场文书
工商干部先进事迹
2014/05/14 职场文书
检察机关个人对照检查材料
2014/09/15 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
中层领导干部群众路线对照检查材料思想汇报
2014/10/02 职场文书
毕业设计论文致谢词
2015/05/14 职场文书
2016年国陪研修感言
2015/11/18 职场文书
Mysql事务索引知识汇总
2022/03/17 MySQL