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和ACCESS写聊天室(九)
Oct 09 PHP
LotusPhp笔记之:基于ObjectUtil组件的使用分析
May 06 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
Jul 03 PHP
php如何连接sql server
Oct 16 PHP
PHP远程调试之XDEBUG
Dec 29 PHP
php HTML无刷新提交表单
Apr 05 PHP
php使用pclzip类实现文件压缩的方法(附pclzip类下载地址)
Apr 30 PHP
Yii1.1中通过Sql查询进行的分页操作方法
Mar 16 PHP
使用 laravel sms 构建短信验证码发送校验功能
Nov 06 PHP
PHP实现对图片的反色处理功能【测试可用】
Feb 01 PHP
Laravel 连接(Join)示例
Oct 16 PHP
laravel通用化的CURD的实现
Dec 13 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 session机制
2011/07/17 PHP
浅谈Coreseek、Sphinx-for-chinaese、Sphinx+Scws的区别
2016/12/15 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
IE与FF下javascript获取网页及窗口大小的区别详解
2014/01/14 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
javascript操纵OGNL标签示例代码
2014/06/16 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
2015/09/04 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
解决vue打包报错Unexpected token: punc的问题
2020/10/24 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Python使用bs4获取58同城城市分类的方法
2015/07/08 Python
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
python中 chr unichr ord函数的实例详解
2017/08/06 Python
Python创建对称矩阵的方法示例【基于numpy模块】
2017/10/12 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
2018/04/21 Python
使用python批量化音乐文件格式转换的实例
2019/01/09 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
基于keras输出中间层结果的2种实现方式
2020/01/24 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
python基于socket函数实现端口扫描
2020/05/28 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
CSS3属性box-shadow使用详细教程
2012/01/21 HTML / CSS
今天学到的CSS最新技术(与图片背景相关)
2012/12/24 HTML / CSS
美国家用和厨房电器销售网站:Appliances Connection
2020/01/24 全球购物
实习单位接收函
2014/01/11 职场文书
初三政治教学反思
2014/01/30 职场文书
离职证明范本(5篇)
2014/09/19 职场文书
2015年秋学期师德师风建设工作总结
2015/10/23 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js