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 相关文章推荐
FCKeditor的安装(PHP)
Jan 13 PHP
据说是雅虎的一份PHP面试题附答案
Jan 07 PHP
PHP 文件类型判断代码
Mar 13 PHP
表格展示无限级分类(PHP版)
Aug 21 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
Jun 05 PHP
10款实用的PHP开源工具
Oct 23 PHP
简单的pgsql pdo php操作类实现代码
Aug 25 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
redirect_uri参数错误的解决方法(必看)
Feb 16 PHP
php批量删除操作(数据访问)
May 23 PHP
php中Swoole的热更新实现代码实例
Mar 04 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程序的方法小结
2012/02/23 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
浅谈PHP各环境下的伪静态配置
2019/03/13 PHP
javascript jQuery插件练习
2008/12/24 Javascript
JQuery从头学起第二讲
2010/07/04 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
vue+elementUI 复杂表单的验证、数据提交方案问题
2019/06/24 Javascript
微信小程序 如何保持登录状态
2019/08/16 Javascript
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
python通过正则查找微博@(at)用户的方法
2015/03/13 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python判断值是否在list或set中的性能对比分析
2016/04/16 Python
python3实现微型的web服务器
2019/09/03 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
Matlab中plot基本用法的具体使用
2020/07/17 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
超酷炫 CSS3垂直手风琴菜单
2016/06/28 HTML / CSS
台湾专柜女包:KINAZ
2019/12/26 全球购物
六年级数学教学反思
2014/02/03 职场文书
银行求职信范文
2014/05/26 职场文书
2014教师教育实践活动对照检查材料思想汇报
2014/09/21 职场文书
学习委员竞选稿
2015/11/20 职场文书
Go归并排序算法的实现方法
2022/04/06 Golang
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL