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 相关文章推荐
一个简易需要注册的留言版程序
Oct 09 PHP
Views rows style模板重写代码
May 16 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
php实现高效获取图片尺寸的方法
Dec 12 PHP
ucenter通信原理分析
Jan 09 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
PHP环形链表实现方法示例
Sep 15 PHP
php实现的AES加密类定义与用法示例
Jan 29 PHP
浅谈php的TS和NTS的区别
Mar 13 PHP
PHP压缩图片功能的介绍
Mar 21 PHP
Yii 框架使用数据库(databases)的方法示例
May 19 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
May 25 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调用Java对象的方法
2006/10/09 PHP
php横向重复区域显示二法
2008/09/25 PHP
nginx+php-fpm配置文件的组织结构介绍
2012/11/07 PHP
php基于curl实现随机ip地址抓取内容的方法
2016/10/11 PHP
php-msf源码详解
2017/12/25 PHP
css动画效果之animation的常用样式
2021/03/09 HTML / CSS
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
2006/06/26 Javascript
JS小游戏之仙剑翻牌源码详解
2014/09/25 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
判断访客终端类型集锦
2015/06/05 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
jquery加载单文件vue组件的方法
2017/06/20 jQuery
使用async-validator编写Form组件的方法
2018/01/10 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
JS中移除非数字最多保留一位小数
2018/05/09 Javascript
Vuejs+vue-router打包+Nginx配置的实例
2018/09/20 Javascript
vue prop属性传值与传引用示例
2019/11/13 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
[01:57]2018年度DOTA2最具潜力解说-完美盛典
2018/12/16 DOTA
通过python下载FTP上的文件夹的实现代码
2013/02/10 Python
python使用wxPython打开并播放wav文件的方法
2015/04/24 Python
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
python字符串常用方法
2018/06/14 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
浅谈优化Django ORM中的性能问题
2020/07/09 Python
HTML5实现多张图片上传功能
2016/03/11 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
威尔逊皮革:Wilsons Leather
2018/12/07 全球购物
机电工程学生自荐信范文
2013/12/07 职场文书
模范家庭事迹材料
2014/02/10 职场文书
元旦文艺汇演主持词
2014/03/26 职场文书
大学迎新生标语
2014/10/06 职场文书
学院党的群众路线教育实践活动第一阶段情况汇报
2014/10/25 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL