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 相关文章推荐
真正面向对象编程:PHP5.01发布
Oct 09 PHP
PHP curl模拟浏览器采集阿里巴巴的实现代码
Apr 20 PHP
深入理解require与require_once与include以及include_once的区别
Jun 05 PHP
php中session定期自动清理的方法
Nov 12 PHP
PHP7标量类型declare用法实例分析
Sep 26 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
Jan 20 PHP
PHP使用preg_split和explode分割textarea存放内容的方法分析
Jul 03 PHP
PHP基于自定义函数实现的汉字转拼音功能实例
Sep 30 PHP
PHP中遍历数组的三种常用方法实例分析
Jun 24 PHP
Yii框架函数简单用法分析
Sep 09 PHP
php源码的安装方法和实例
Sep 26 PHP
php7 图形用户界面GUI 开发示例
Feb 22 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/04/24 PHP
深入php list()函数的详解
2013/06/05 PHP
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
从零开始学习jQuery (十) jQueryUI常用功能实战
2011/02/23 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
Javascript的getYear、getFullYear、getUTCFullYear异同分享
2011/11/30 Javascript
一个简单的瀑布流效果(主体形式自写)
2013/05/27 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
javascript 小数取整简单实现方式
2014/05/30 Javascript
Javascript中的作用域和上下文深入理解
2015/07/03 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
Node.js插件安装图文教程
2016/05/06 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
vue使用vue-i18n实现国际化的实现代码
2018/04/08 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
Python编写登陆接口的方法
2017/07/10 Python
python的依赖管理的实现
2019/05/14 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
2019/08/04 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
2019/10/30 Python
python GUI库图形界面开发之PyQt5信号与槽事件处理机制详细介绍与实例解析
2020/03/08 Python
解决python3输入的坑——input()
2020/12/05 Python
css3中transition属性详解
2014/09/02 HTML / CSS
HTML5: Web 标准最巨大的飞跃
2008/10/17 HTML / CSS
苹果美国官方商城:Apple美国
2016/08/24 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
企业管理专业个人求职信范文
2013/09/24 职场文书
客服文员岗位职责
2013/11/29 职场文书
国际金融专业自荐信
2014/07/05 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
2015年员工工作总结范文
2015/04/08 职场文书
工作态度检讨书范文
2015/05/06 职场文书
2015年度个人教学工作总结
2015/05/20 职场文书
Python GUI编程之tkinter 关于 ttkbootstrap 的使用详解
2022/03/03 Python