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
PHP通用检测函数集合
Nov 25 PHP
PHP spl_autoload_register实现自动加载研究
Dec 06 PHP
php中sql注入漏洞示例 sql注入漏洞修复
Jan 24 PHP
教你如何开启shopnc b2b2c 伪静态
Oct 21 PHP
php格式化金额函数分享
Feb 02 PHP
PHP判断来访是搜索引擎蜘蛛还是普通用户的代码小结
Sep 14 PHP
PHP中addslashes与mysql_escape_string的区别分析
Apr 25 PHP
PHP入门教程之表单与验证实例详解
Sep 11 PHP
PHP 将dataurl转成图片image方法总结
Oct 14 PHP
yii2项目实战之restful api授权验证详解
May 20 PHP
PHP从零开始打造自己的MVC框架之类的自动加载实现方法详解
Jun 03 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 UTF8中文字符截断函数代码
2012/09/11 PHP
关于Zend Studio 配色方案插件的介绍
2013/06/24 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
jQuery 写的简单打字游戏可以提示正确和错误的次数
2014/07/01 Javascript
探讨js字符串数组拼接的性能问题
2014/10/11 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
jQuery实现的placeholder效果完整实例
2016/08/02 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
基于JS设计12306登录页面
2016/12/28 Javascript
Vue数组更新及过滤排序功能
2017/08/10 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
Python ZipFile模块详解
2013/11/01 Python
深入理解python中的闭包和装饰器
2016/06/12 Python
python实现数据库跨服务器迁移
2018/04/12 Python
python-str,list,set间的转换实例
2018/06/27 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
python 画出使用分类器得到的决策边界
2019/08/21 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
获奖的大学生创业计划书
2014/01/05 职场文书
小学教师事迹材料
2014/01/13 职场文书
四风存在的原因分析
2014/02/11 职场文书
优秀本科生求职推荐信
2014/02/24 职场文书
学雷锋的心得体会
2014/09/04 职场文书
公司承诺函范文
2015/01/21 职场文书
爱牙日宣传活动总结
2015/02/05 职场文书
少年犯观后感
2015/06/11 职场文书
高中班长竞选稿
2015/11/20 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
学长教您写论文:经验总结
2019/07/09 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js