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脚本的10个技巧(8)
Oct 09 PHP
让你的PHP同时支持GIF、png、JPEG
Oct 09 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
基于php-fpm的配置详解
Jun 03 PHP
解析PHP 5.5 新特性
Jul 02 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
网站防止被刷票的一些思路与方法
Jan 08 PHP
Smarty高级应用之缓存操作技巧分析
May 14 PHP
Yii多表联合查询操作详解
Jun 02 PHP
PHP重定向与伪静态区别
Feb 19 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
Laravel 之url参数,获取路由参数的例子
Oct 21 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 array_unique之后json_encode需要注意
2011/01/02 PHP
用PHP的超级变量$_POST获取HTML表单(HTML Form) 数据
2011/05/07 PHP
php打造属于自己的MVC框架
2012/03/07 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
php传值赋值和传地址赋值用法实例分析
2015/06/20 PHP
PHP面试题之文件目录操作
2015/10/15 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
解决Laravel5.5下的toArray问题
2019/10/15 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
表单JS弹出填写提示效果代码
2011/04/16 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
ztree获取当前选中节点子节点id集合的方法
2015/02/12 Javascript
js实现点击文本框显示日期选择器特效代码分享
2020/05/21 Javascript
jQuery实现连续动画效果实例分析
2015/10/09 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
总结十个Angular.js由浅入深的面试问题
2016/08/26 Javascript
AngularJs concepts详解及示例代码
2016/09/01 Javascript
springmvc接收jquery提交的数组数据代码分享
2017/10/28 jQuery
让网站自动生成章节目录索引的多个js代码
2018/01/07 Javascript
深入了解JavaScript代码覆盖
2019/06/13 Javascript
vue基础知识--axios合并请求和slot
2020/06/04 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
正确理解Python中if __name__ == '__main__'
2019/01/24 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
selenium 多窗口切换的实现(windows)
2020/01/18 Python
django实现日志按日期分割
2020/05/21 Python
Python3中对json格式数据的分析处理
2021/01/28 Python
家长给学校的建议书
2014/05/15 职场文书
王力宏牛津大学演讲稿
2014/05/22 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
见习期个人总结
2015/03/05 职场文书
Go语言实现Snowflake雪花算法
2021/06/08 Golang
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技