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面试题附答案
Jan 07 PHP
将数组写入txt文件 var_export
Apr 21 PHP
smarty巧妙处理iframe中内容页的代码
Mar 07 PHP
kohana框架上传文件验证规则写法示例
Jul 14 PHP
CI框架Session.php源码分析
Nov 03 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
thinkPHP查询方式小结
Jan 09 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
Laravel中任务调度console使用方法小结
May 07 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
浅析PHP中json_encode与json_decode的区别
Jul 15 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
也谈截取首页新闻 - 范例
2006/10/09 PHP
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
php缓存技术详细总结
2013/08/07 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
浅析php单例模式
2014/11/25 PHP
PHP获取昨天、今天及明天日期的方法
2016/02/03 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
Jquery遍历节点的方法小集
2014/01/22 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
使用JQuery实现的分页插件分享
2015/11/05 Javascript
禁止弹窗中蒙层底部页面跟随滚动的几种方法
2017/12/07 Javascript
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
回顾Javascript React基础
2019/06/15 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
2020/02/27 Javascript
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
零基础写python爬虫之抓取糗事百科代码分享
2014/11/06 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
详解PyTorch批训练及优化器比较
2018/04/28 Python
Python决策树之基于信息增益的特征选择示例
2018/06/25 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
2020/01/05 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
python多进程 主进程和子进程间共享和不共享全局变量实例
2020/04/25 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
html5.2 dialog简介详解
2018/02/27 HTML / CSS
女大学生自我鉴定
2013/12/09 职场文书
工厂仓管员岗位职责范本
2014/07/17 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
终止劳动合同证明书样本
2014/11/19 职场文书
2015年外联部工作总结
2015/04/03 职场文书
会计做账心得体会
2016/01/22 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android